Мне нужно загрузить большой набор изображений из ведра S3 с помощью aws-sdk-js. На данный момент я делаю это, вызывая s3.getObject(params, function (err, data)
. в цикле для каждого файла в моем списке? Есть ли какой-нибудь другой более быстрый и эффективный способ загрузки файлов, кроме загрузки их один за другим в aws-sdk-js?Использует ли aws-sdk для javascript многократные «загрузки» с S3?
ответ
В основном вы хотите синхронизировать каталог на s3 ведро
можно использовать aws s3 sync
из CLI AWS или s3cmd put --recursive
из s3cmd CLI
Если вы хотите использовать AWS-СДК-Js нет никакой синхронизации метод из API, к счастью, многие из них сделали эту функциональность.
, например, node-s3-client имеет такие функциональные возможности
var params = {
localDir: "some/local/dir",
deleteRemoved: true, // default false, whether to remove s3 objects
// that have no corresponding local file.
s3Params: {
Bucket: "s3 bucket name",
Prefix: "some/remote/dir/",
// other options supported by putObject, except Body and ContentLength.
// See: http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#putObject-property
},
};
var uploader = client.uploadDir(params);
uploader.on('error', function(err) {
console.error("unable to sync:", err.stack);
});
uploader.on('progress', function() {
console.log("progress", uploader.progressAmount, uploader.progressTotal);
});
uploader.on('end', function() {
console.log("done uploading");
});
Вы можете использовать модуль Узлом JS s3fs, который обеспечивает функции, которые аналогичны модулю фс. Чтобы загрузить несколько файлов, я рекомендую вам использовать модуль s3fs, который прост и прост в использовании. Вы можете написать свои файлы в каталоге на s3 ведро с помощью s3fs, а затем использовать функцию readdirp:
var fsImpl = new S3FS('test-bucket', options);
fsImpl.readdirp('test-folder').then(function(files) {
// Files contains a list of all of the files similar to [`fs.readdir(path, callback)`](http://nodejs.org/api/fs.html#fs_fs_readdir_path_callback) but with recursive contents
}, function(reason) {
// Something went wrong
});
Источник: https://www.npmjs.com/package/s3fs
Чтобы настроить s3fs проверить ссылку ниже, это довольно простой в использовании :
- 1. Разрешают ли перегородки многократные загрузки?
- 2. Разве AWS S3 автоматически отменяет многократные загрузки после таймаута?
- 3. Извлечь StorageClass из S3 GetObject с использованием AWSSDK
- 4. AWSSDK, S3 CopyObjectRequest возвращает ошибку NoSuchKey для действительного ключа
- 5. Shrine with Rails многократные загрузки полиморфных изображений
- 6. s3 файл для загрузки
- 7. AWSSDK - S3 - if_object_exists продолжает возвращать аргумент 2, переданный ошибке Guzzle
- 8. AWSS3PresignedURLErrorDomain, iOS, AWSSDK v2
- 9. Использует ли Ruby Amazon S3 SDK SSLv3?
- 10. System.Threading.ThreadAbortException от AWSSDK для .net
- 11. AWSSDK S3 - if_object_exists продолжает возвращаться ложным, когда файл существует
- 12. Использует ли .emacs.d путь загрузки?
- 13. многократные загрузки изображений на C#/jquery
- 14. Многократные области загрузки JQuery добавляются отдельно
- 15. Javascript для загрузки файла из amazon s3 bucket?
- 16. Ошибка компоновщика Xamarin с AWSSDK
- 17. Многократные интервалы JavaScript и clearInterval
- 18. Мобильные Фото Загрузки для S3
- 19. Исключение PutObjectRequest в AWSSDK 2.0.2
- 20. многократные вызовы со значением javascript
- 21. CMS, который использует s3 для хранилища данных?
- 22. AWSSDK Linux AMI посмотреть
- 23. Пример приложения rails4 с REST API, который использует скрепку для загрузки в Amazon S3
- 24. S3 политика загрузки файла
- 25. Использование AWS S3 самостоятельно или S3 & Cloudfront для загрузки видео
- 26. Amazon s3 загрузки изображений
- 27. S3 загрузки THRU углового
- 28. Можно ли запросить AWS S3 для загрузки файла?
- 29. Какой порт использует AWS S3?
- 30. Использует S3 Метаданные Запрос на получение ETag?
Спасибо, я действительно хотел, чтобы загрузить некоторые выбранный набор файлов из s3 ведра, на основе пользовательского ввода заданного с помощью веб-приложения. На данный момент я рассматриваю возможность использования функции лямбда, которая возвращает предварительно подписанный набор URL-адресов из ведра s3, вместо того, чтобы получать файлы, загружаемые непосредственно из веб-приложения, из-за некоторых проблем безопасности. Btw Hope Возможно использовать фрагмент кода, который вы указали для загрузки данных из s3? –
да вы можете использовать отрезанный для загрузки, просто измените 'uploadDir' на' downloadDir' –