s3 直接上传限制文件大小和类型
一个新手问题,但我已经谷歌了一下,似乎找不到任何解决方案。
我想允许用户直接将文件上传到 S3,而不是先通过我的服务器上传。通过这样做,在实际上传到 S3 之前,是否有任何方法可以检查文件的大小限制和允许的类型?最好不要使用flash,而是javascript。
一个新手问题,但我已经谷歌了一下,似乎找不到任何解决方案。
我想允许用户直接将文件上传到 S3,而不是先通过我的服务器上传。通过这样做,在实际上传到 S3 之前,是否有任何方法可以检查文件的大小限制和允许的类型?最好不要使用flash,而是javascript。
如果您正在谈论安全问题(人们将大型文件上传到您的存储桶),是的,您可以通过基于浏览器的上传到S3来限制文件大小。
下面是“策略”变量的示例,其中“内容-长度-范围”是关键点。
"expiration": "'.date('Y-m-d\TG:i:s\Z', time()+10).'",
"conditions": [
{"bucket": "xxx"},
{"acl": "public-read"},
["starts-with","xxx",""],
{"success_action_redirect": "xxx"},
["starts-with", "$Content-Type", "image/jpeg"],
["content-length-range", 0, 10485760]
]
在这种情况下,如果上传文件大小> 10mb,则亚马逊将拒绝上传请求。
当然,在开始上传过程之前,您应该使用javascript来检查文件大小,并在这样做时发出一些警报。
AWS 编写了一个教程,解释了如何创建 HTML POST 表单,该表单允许您的网站访问者使用标准 Web 浏览器将文件上传到您的 S3 账户。它使用 S3 预签名 URL 来防止篡改,您可以按文件大小限制访问。