首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在AWS S3中上传文件时指定最大文件大小

在AWS S3中上传文件时指定最大文件大小
EN

Stack Overflow用户
提问于 2017-11-03 11:25:03
回答 2查看 4.9K关注 0票数 0

我正在通过AWS安全令牌服务(AWS STS)创建临时凭据。并使用这些凭据将文件从S3 JAVA上传到S3。我需要一些方法来限制文件上传的大小。我试图在创建用户时添加策略(s3:内容长度范围),但这似乎行不通。还有其他方法来指定用户可以上传的最大文件大小吗??

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-11-03 11:39:20

我相信在上传之前没有办法限制对象的大小,而对此做出反应将是相当困难的。解决方法是通过Lambda函数或SNS主题创建一个触发代码的S3事件通知。它可以验证或删除对象,并通知用户,例如。

票数 1
EN

Stack Overflow用户

发布于 2017-11-03 17:12:35

另一种方法是生成一个预先签名的URL,而不是临时凭据。对于一个具有您指定名称的文件来说,这将是很好的。在生成URL时,还可以强制设置内容长度范围。您的用户将获得URL,并且必须使用特定的方法(POST/PUT/etc)。为了请求。它们设置内容,而您设置其他内容。

我不知道如何使用Java (它似乎不支持条件),但是使用Python和boto3很简单

代码语言:javascript
运行
复制
import boto3

# Get the service client
s3 = boto3.client('s3')

# Make sure everything posted is publicly readable
fields = {"acl": "private"}

# Ensure that the ACL isn't changed and restrict the user to a length
# between 10 and 100.
conditions = [
    {"acl": "private"},
    ["content-length-range", 10, 100]
]

# Generate the POST attributes
post = s3.generate_presigned_post(
    Bucket='bucket-name',
    Key='key-name',
    Fields=fields,
    Conditions=conditions
)

在测试时,请确保每个标题项都匹配,否则会出现模糊访问被拒绝的错误。完全匹配可能需要一段时间。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47094645

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档