我使用post和swf上传成功上传到amazon s3存储桶但是任何人都可以告诉我如何上传到我的存储桶中的子目录。
我使用php作为我的服务器端语言。
提前致谢
答案 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库)。无论如何,这个概念仍然是一样的。您需要在策略和请求中包含该文件夹。