Как загрузить в новую папку в Amazon S3 Bucket? - PullRequest
0 голосов
/ 12 апреля 2020

Привет! Я создаю страницу, на которой пользователь может загрузить выбранный файл в новую папку в корзине S3, которая будет создана при загрузке файла пользователем.

Пользователь введет имя новой папки в данном текстовом поле пользователь выберет файл для загрузки, когда пользователь нажмет кнопку загрузки, S3 bucket создаст новую папку и загрузит файл в новую созданную папку.

Код ниже - это код, который я попробовал. Я попробовал это

     'conditions' => array(
     array('bucket' => $my_bucket),  
     array('acl' => 'public-read'),  
     array('starts-with' => $key, '/'),  
     array('starts-with', '$Content-Type', ''),
     array('body' => ''),
     array('success_action_status' => '201'),  
     array('x-amz-credential' => implode('/', array($access_key, $short_date, $region, 's3', 'aws4_request'))),  
     array('x-amz-algorithm' => 'AWS4-HMAC-SHA256'),  
     array('x-amz-date' => $iso_date),  
     array('x-amz-expires' => ''.$presigned_url_expiry.''),

, но я не мог получить это. Я надеюсь, что вы, ребята, можете помочь мне в этом. Спасибо

1 Ответ

1 голос
/ 13 апреля 2020

Папки фактически не существуют в Amazon S3. Вы можете загрузить файл в «несуществующую» папку, и папки «появятся». Затем, если файл будет удален, папки «исчезнут».

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

Если вам действительно нужно создать папку, вы можете создать объект нулевой длины с тем же именем (ключ), что и папка. Это заставит папку «появиться» (даже если она не существует).

Итог: Не беспокойтесь о создании папок. Просто загрузите файлы туда, где вы хотите их. Поверь мне.

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