【发布时间】:2014-12-10 18:21:00
【问题描述】:
我正在使用signed authorized S3 uploads,以便用户可以绕过我的服务器直接从浏览器上传文件到 S3。这目前有效,但文件名与用户机器上的相同。我想在 S3 上以不同的名称保存它。
我发布到亚马逊的表单数据如下所示:
var formData = new FormData();
formData.append('key', targetPath); // e.g. /path/inside/bucket/myFile.mov
formData.append('AWSAccessKeyId', s3Auth.AWSAccessKeyId); // aws public key
formData.append('acl', s3Auth.acl); // e.g. 'public-read'
formData.append('policy', s3Auth.policy); // s3 policy including ['starts-with', '$key', '/path/inside/bucket/']
formData.append('signature', s3Auth.signature); // base64 sha1 hash of private key and base64 policy JSON
formData.append('success_action_status ', 200); // response code 200 on success
formData.append('file', file.slice()); // e.g. /path/on/user/computer/theirFile.mov
但是,而不是文件结束于:
https://s3.amazonaws.com/mybucket/path/inside/bucket/myFile.mov
结果如下:
https://s3.amazonaws.com/mybucket/path/inside/bucket/theirFile.mov
注意它有他们的文件名,但我的基本路径。
我希望它也具有我指定的文件名。
更新:更新:这一直有效我只是将其他代码从一个存储桶复制到另一个存储桶,从而恢复了原始文件名,从而使我感到困惑。
【问题讨论】:
标签: javascript file file-upload amazon-web-services amazon-s3