swf上传到amazon s3子目录

时间:2009-12-21 11:56:24

标签: php amazon-s3

我使用post和swf上传成功上传到amazon s3存储桶但是任何人都可以告诉我如何上传到我的存储桶中的子目录。

我使用php作为我的服务器端语言。

提前致谢

5 个答案:

答案 0 :(得分:2)

您应该在策略中包含文件路径并发布参数。例如,在设置策略数组时,将文件的键设置为“/path/../filename.ext”。

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

在帖子参数中的键中使用它

答案 1 :(得分:1)

为了在bucket的子文件夹上嵌套文件,我首先通过PHP创建了子文件夹,如下所示:

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

然后使用SWFUPLOAD通过post_params数组中的javascript代码我在键值上附加了我的嵌套子文件夹的名称,如下所示:

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/"}

答案 2 :(得分: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
}

答案 3 :(得分:0)

我也遇到了同样的问题,似乎亚马逊s3没有文件夹概念,大多数人建议的解决方法是创建一个名为folder / test.txt的对象。

答案 4 :(得分:0)

您可能会发现本文有用:

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

它使用的是Uploadify而不是SWFUpload库(但我认为Uploadify在内部使用SWFUpload库)。无论如何,这个概念仍然是一样的。您需要在策略和请求中包含该文件夹。