2009-12-21 2 views
0

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

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

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

+0

Я могу загрузить в подпапку с помощью сообщения, но когда я объединю его с загрузкой swf, я могу загрузить только в свое ведро. –

ответ

0

Если вы используете php-aws library, там действительно не так много к нему:

$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 
} 
0

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

+0

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

2

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

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

использование, что в ключе в почтовых параметров

0

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

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

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

1

Для гнездования файлов на вложенном ведро я первый созданный подкаталог с помощью PHP, как показано ниже:

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

затем с SWFUpload с помощью яваскрипта кода в массиве 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/"}