我正在开发一个项目,其中所有用户图片上传都存储在S3上。为了节省带宽并避免上传到我们的服务器,我们使用基于HTML表单的上传(请参阅http://docs.amazonwebservices.com/AmazonS3/latest/dev/HTTPPOSTForms.html)。
验证上传内容的最佳做法是什么,以避免非图像/恶意文件潜入我的帐户并从中提供?有没有办法用S3开箱即用?或者,我是否需要在上传文件后在我的服务器上验证这一点(这几乎会破坏直接转到s3的目的)?
答案 0 :(得分:0)
如果您使用jquery文件上传与html5 s3表单相结合,您可以使用类似下面的代码来处理上传过程。在文件上传之前,您可以在文件到达服务器之前检查文件类型以及file.size < 50000000
的大小。
jQuery ->
$('#fileupload').fileupload
add: (e, data) ->
types = /(\.|\/)(gif|jpe?g|png)$/i
file = data.files[0]
if types.test(file.type) || types.test(file.name)
data.context = $(tmpl("template-upload", file))
$('#fileupload').append(data.context)
data.submit()
else
alert("#{file.name} is not a gif, jpeg, or png image file")