我使用传统的PHP成功测试了上传到本地服务器。 但是,我在向亚马逊s3上传时遇到问题。
我使用git示例编写php作为参考。请告诉我我做错了什么。 引用的所有脚本都位于我本地系统的正确位置,我也没有提出任何CORS请求。
以下是具体的代码部分:
// UI实例
var s3uploader = new qq.s3.FineUploader({
request: {
endpoint: "bucket.s3.amazonaws.com",
accessKey: "given key"
},
signature: {
endpoint: "endpoint.php"
},
uploadSucess: {
endpoint: "endpoint.php?success"
},
});
在endpoint.php中,我已经分配了clientPrivateKey,bucketName和hostName,我假设剩下的事情最好保持不变。 (包括composer.json文件)
错误:
1.试图解析签名的错误
2.收到空的或无效的服务器响应
3.政策签署失败
此外: 政策文件是否由我们自己明确撰写? 我如何知道我的存储桶是否仅支持版本4签名?
答案 0 :(得分:1)
您必须包含以下变量的包含值:
此外,如果您正在使用v4签名,则还必须包含以下值:
如果您看到签名错误,则表示您尚未设置所有这些值,或AWS键不正确。
关于你的另外两个问题:
政策文件是否由我们自己明确撰写?
不,Fine Uploader S3会创建这些。请注意,策略文档仅用于非分块上传。对于分块上传,使用S3分段上传API,并要求您的签名服务器签署一串标识头。
如何知道我的存储桶是否仅支持版本4签名?
http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region