【发布时间】:2019-09-17 23:34:57
【问题描述】:
我正在尝试将文件上传到预签名的 S3 URL。这大约有一半的时间可以正常工作。但是,文件的另一半时间根本没有上传到 S3。
我正在使用以下 sn-p 来完成繁重的工作:
let preSignedUrl = result.Data.toString().replace(/amp;/gm, "");
let blob = b64toBlob(file.fileString, result.ContentType);
const resp = await axios.put(
preSignedUrl,
{ data: blob },
{
headers: {
"Content-Type": result.ContentType,
},
});
如果我通过 Postman 而不是浏览器上传,则始终没问题。
blob、URL 和内容类型都是正确的。我总是上传到同一个桶。我可以持续上传文件,删除它,然后重新上传同一个文件,它不会再上传第二次了。
我总是从 S3 收到 200 OK 响应。
我的请求格式中是否遗漏了任何明显的内容?这种方法有什么“陷阱”吗? S3 是否可以在不实际接受文件的情况下返回 200?
我曾尝试寻找类似的问题,但没有任何运气。
【问题讨论】:
-
您是否查看过实际的请求/响应,并将其与 Postmate 的进行比较?如果是这样,在您的问题中提供请求(当然,没有有效负载和密钥:))可能会有所帮助
标签: amazon-s3