Как я могу проверить содержимое файла с помощью загрузок S3 на основе браузера? - PullRequest
2 голосов
/ 19 декабря 2011

Я работаю над проектом, в котором все загрузки пользовательских изображений хранятся на S3.Чтобы сэкономить пропускную способность и избежать загрузки, проходящей через наши серверы, мы используем загрузки на основе форм HTML (см. http://docs.amazonwebservices.com/AmazonS3/latest/dev/HTTPPOSTForms.html).

. Каковы оптимальные методы проверки содержимого загрузки, чтобы избежать не изображения или вредоносногофайлы, подкрадывающиеся и обслуживаемые из моей учетной записи? Есть ли способ сделать это из коробки с S3? Или мне нужно проверить это на моем сервере, после того как файл был загружен (что в значительной степени нарушило бы цельСобираетесь сразу на s3)?

1 Ответ

0 голосов
/ 01 мая 2013

Если вы используете загрузку файла 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")
...