amazon-web-services - 大文件时 S3 预签名 url 失败
问题描述
我有一个适用于任何小文件的预签名。
当我尝试上传更大的文件时,我在帖子中收到 ACCESS DENIED ,而正文中没有任何其他消息。
有趣的是,如果我继续尝试,在几次被拒绝的命中后,它就会起作用。这完全是随机的......
当访问未被拒绝时,该条件通过在文件大于 100mb 时给出正确的错误返回和消息来起作用。但问题是帖子的很大一部分被拒绝了......
这被拒绝发生在亚马逊地址的帖子中,所以我无法访问它的任何日志......
相同的帖子和脚本:
这是代码:
const S3 = new AWS.S3({
signatureVersion: 'v4',
region: region
});
const params = {
Expires: linkExpiresSecs,
Bucket: bucketName,
Conditions: [
["content-length-range", 1, 104857600]
],
Fields: {
key: keyFile
}
};
const response = await S3.createPresignedPost(params);
解决方案
我认为链接的有效性在为更大的文件下载文件之前到期。至于有时下载成功的行为,可能是由于网络情况,例如较少的拥塞。或文件的某些部分先前已缓存。
推荐阅读
- python - 查看以 Django 中其他列为条件的新列
- javascript - 如何知道两个透明图像是否在非透明区域相交
- python - Python - 使用 Knn 算法扩展测试数据的 Ocr
- javascript - React/JS 切换表列
- firebase - 履行 URL 在 Dialogflow 中无效 | 使用云函数
- python - unindent 不匹配任何外部缩进级别 python3.6.4
- azure-functions - 来自 CosmosDB 的 Azure 函数输入绑定:每次调用都会加载数据吗?
- python - scikit-learn 中的多输出高斯过程回归
- javascript - 过滤箭头函数 (ES6)
- c++-cli - 获取对 List 中元素的引用