Amazon S3 класс по незапланированной создать папку - PullRequest
0 голосов
/ 05 июля 2011

Я пытаюсь использовать незапланированный класс s3 для создания папки. Я могу создать просто папку в моей учетной записи Amazon S3, но просто запустив следующую команду.

Я могу это сделать.

$file = "license.txt";  
if ($s3->putObjectFile($file, $_POST['bucket'], $_POST['folder']."/", S3::ACL_PUBLIC_READ)) {
        echo "File uploaded.";
} else {
        echo "Failed to upload file.";
}

, которая создаст папку в моем ведре, но когда я запускаю цикл, она не ссылается на нее как на папку

Есть предложения почему ???

Ответы [ 2 ]

2 голосов
/ 06 июля 2011

S3 на самом деле не имеет папок.

Каждая корзина содержит только ваши файлы, на которые ссылается их ключ / имя файла. Существует соглашение, что если эти имена файлов содержат /, то текст перед каждым / считается папкой, и многие инструменты GUI используют это для отображения иерархии папок.

Например, файл с именем folder1/folder2/file.txt будет иметь глубину 2 уровня в folder1 и подпапку folder2.

Amazon также упрощает поиск в виртуальных папках с использованием параметров delimiter и prefix. Смотри http://docs.amazonwebservices.com/AmazonS3/latest/API/index.html?RESTBucketGET.html

1 голос
/ 30 декабря 2011

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

Если вы помещаете объект без содержимого (0 байт) и ключ (имя)оканчивается на «/» и «content-type» = «binary / octet-stream», он будет обрабатываться S3 как каталог (папка).

Имейте в виду, что это все еще простофайл;однако консоль будет обрабатывать его как каталог (папку), а многие клиенты SDK будут рассматривать его как каталог (папку).

Чтобы получить 0 байтов, вы можете просто использовать файл "/ dev/ null "вместо" license.txt ".

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

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