SWF-загрузка в подкаталог amazon s3 - PullRequest
0 голосов
/ 21 декабря 2009

Я успешно загрузил в amazon s3 bucket, используя post и swf upload, но любой может сказать мне, как загрузить в подкаталог внутри моего bucket.

Я использую php в качестве языка моего сервера.

Заранее спасибо

Ответы [ 5 ]

2 голосов
/ 17 мая 2011

вы должны включить путь к файлу в вашу политику и параметры публикации. например, при установке массива политики установите ключ файла равным «/path/../filename.ext».

array("starts-with", '$key', $this->file_key);

используйте это в ключе в параметрах записи

1 голос
/ 26 июля 2012

Для вложения файлов в подпапку ведра я сначала создал подпапку через PHP, как показано ниже:

if(!($s3->if_object_exists($S3_BUCKET, 'mysubfolder/'))) {
     $s3->create_object($S3_BUCKET,'mysubfolder/', array('body' => ''));
};

затем с помощью SWFUPLOAD через код JavaScript в массиве post_params я добавил к значению ключа имя моей вложенной подпапки следующим образом:

post_params: {"AWSAccessKeyId":"AXAXAXAXAX", "key":"mysubfolder/${filename}", "acl":"public-read", "policy":"SAgXQ0KCX0=","signature":"QvbfiUUsRby8wovt=","success_action_status":"201", "content-type":"image/"}

Еще один сегмент кода. проверьте где прописные буквы

/********************************* PHP CODE */

if(!($s3->if_object_exists($S3_BUCKET, 'mysubfolder/'))) {
     $s3->create_object($S3_BUCKET,'IMAGES/', array('body' => ''));
};

....

/********************************** JAVASCRIPT CODE */

post_params: {"AWSAccessKeyId":"AXAXAXAXAX", "key":"IMAGES/${filename}", "acl":"public-read", "policy":"SAgXQ0KCX0=","signature":"QvbfiUUsRby8wovt=","success_action_status":"201", "content-type":"image/"}
0 голосов
/ 23 ноября 2011

Вы можете найти эту статью полезной:

http://www.flynsarmy.com/2011/03/upload-to-amazon-s3-with-uploadify/

Он использует Uploadify вместо библиотеки SWFUpload (но я думаю, что Uploadify использует библиотеку SWFUpload внутри). Несмотря на это, концепция все та же. Вам необходимо включить папку в вашу политику и запрос.

0 голосов
/ 21 декабря 2009

У меня тоже возникла такая же проблема, похоже, у amazon s3 нет концепции папок, и большинство людей предлагают обходной путь - создать объект с такими именами, как folder / test.txt.

0 голосов
/ 21 декабря 2009

Если вы используете библиотеку php-aws , в этом нет ничего особенного:

$S3   = new S3(AWS_KEY, AWS_SECRET);
$from = 'fileonyourserver.ext';
$to   = '/path/to/place/in/inside/bucket/.../file.ext';
if ($S3->putObject(AWS_BUCKET, $to, $from, true)){
   //upload success
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...