Создайте пустую папку в AWS S3 с помощью aws sdk (nodejs) - PullRequest
2 голосов
/ 12 июля 2020

Я пытаюсь создать a папку в aws s3 Мне удалось создать папку, но не пустую .

const Obj = new AWS.S3().putObject({
 
  Key: `/`, //the file you should put inside the folder
  Bucket: `${bucketName}/${req.body.modpack}`, // main bucket/folder I want to create
});

Я не могу удалить « ключ », если я это сделаю, я получаю сообщение об ошибке, которое заставляет меня добавить его

Ответы [ 3 ]

3 голосов
/ 12 июля 2020

В Amazon S3 корзины и объекты являются основными ресурсами, а объекты хранятся в корзинах. Amazon S3 имеет плоскую структуру, а не иерархию, как в файловой системе. Однако для упрощения организации консоль Amazon S3 поддерживает концепцию папки как средства группировки объектов. Amazon S3 делает это с помощью префикса общего имени для объектов (то есть объекты имеют имена, начинающиеся с общей строки). Имена объектов также называются именами ключей.

Также. S3 - это не обычная файловая система. Это объект-магазин. В нем есть ведра и предметы. Сегменты используются для хранения объектов, а объекты содержат данные (в основном файл) и метаданные (информацию о файле). По сравнению с традиционной файловой системой, более естественно думать о ведре S3 как о диске, а не как о папке.

Итак, чтобы создать объект или, как мы его называем, папку, вам потребуется чтобы указать имя папки с завершающим «/», например:

const Obj = new AWS.S3().putObject({
 
  Key: `EmptyFolder/`, // This should create an empty object in which we can store files 
  Bucket: `${bucketName}`,
});

Ссылка: https://docs.aws.amazon.com/AmazonS3/latest/user-guide/using-folders.html

0 голосов
/ 15 июля 2020

Единственный вариант для empty в s3 - это корзина, поэтому после создания корзины вы можете добавить любые данные внутри нее в любую динамическую структуру папок c. Структура папок создается в соответствии с путем, который вы указали для существующего файла, например, это может быть bucket_name / folder_name / another_folder_name / file_name, и эта папка может иметь до N значений глубины.

0 голосов
/ 13 июля 2020

Папок в Amazon S3 не существует.

Однако консоль управления Amazon S3 позволяет «создавать» папки. Это достигается путем создания объекта нулевой длины с ключом (имя файла), равным имени папки. Это приводит к тому, что папка появляется при использовании консоли или при получении CommonPrefixes через S3 API.

Как правило, вам не нужно создавать папки. Просто скопируйте файлы в желаемое место назначения, и это сработает волшебным образом, например:

aws s3 cp foo.txt s3://my-bucket/invoices/january/foo.txt

Это приведет к появлению папок invoices и january. Если все объекты в этом каталоге будут удалены, то папки «исчезнут» (потому что их никогда не было).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...