#javascript #amazon-s3
Вопрос:
Я пытаюсь загрузить некоторые данные с веб-сайта, используя aws.sdk для javascript.
Я хочу, чтобы данные отображались в папках для удобства навигации и организации для моих коллег. Я понимаю, что в S3 на самом деле нет папок, но все просто отображается в виде папки в броузере, если имя заканчивается на»/».
У меня есть следующий код для создания папки (называется альбомом, так как я следовал [этому][1] учебнику)
function createAlbum(albumName) {
albumName = albumName.trim();
if (!albumName) {
return alert("Album names must contain at least one non-space character.");
}
if (albumName.indexOf("/") !== -1) {
return alert("Album names cannot contain slashes.");
}
var albumKey = encodeURIComponent(albumName);
s3.headObject({ Key: albumKey }, function(err, data) {
if (!err) {
return alert("Album already exists.");
}
if (err.code !== "NotFound") {
return alert("There was an error creating your album: " err.message);
}
s3.putObject({ Key: albumKey }, function(err, data) {
if (err) {
return alert("There was an error creating your album: " err.message);
}
alert("Successfully created album.");
});
});
}
В основном это нормально, и затем я могу загрузить кучу данных в папку под названием «Имя альбома», и все это хорошо выглядит в консоли (что в основном будет использоваться моими коллегами и мной). Однако код также создает (пустой) файл с именем, каким бы ни было «Имя альбома», см. Ниже для копирования и вставки из консоли.
QZ2COwrbZ0kXsudR - August 2, 2021, 17:59:31 (UTC 01:00) 0 B Standard
QZ2COwrbZ0kXsudR/ Folder - - -
Это нежелательный результат.
Не могли бы вы объяснить мне, почему создается этот пустой файл и как я могу этого избежать?
Спасибо [1]: https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/s3-example-photo-album.html
Ответ №1:
Ах, я понял, что происходит. Код в приведенном выше фрагменте создает файл. Следующий фрагмент кода (который я не включил выше или здесь) затем загружает отдельные файлы с именем QZ2COwrbZ0kXsudR/file_name.ext
, и это то, что создает каталог. Таким образом, приведенный выше код хорош для проверки предыдущего существования, но не является необходимым для фактического создания каталога. Это относится к предыдущим публикациям о том, как папки на самом деле не существуют в S3.