php - subir - s3 carga directa que restringe el tamaño y el tipo de archivo
validar subida de archivos en php (4)
Para hacer lo que quiere hacer, tendrá que cargarlo a través de su propio servicio web. Probablemente, esto sea lo mejor, ya que proporcionar acceso de escritura global a los usuarios finales a su cubo S3 es una pesadilla de seguridad, sin mencionar que no habría nada que les impida cargar archivos de gran tamaño y aumentar sus cargos.
Una pregunta para novatos, pero he recurrido a Google y no puedo encontrar ninguna solución.
Quiero permitir a los usuarios subir archivos directamente a S3, no a través de mi servidor primero. Al hacerlo, ¿hay alguna manera de verificar los archivos para el límite de tamaño y los tipos permitidos antes de cargar realmente en S3? Preferiblemente no usar flash pero javascript.
AWS escribió un tutorial que explica cómo crear formularios HTML POST que permiten a los visitantes de su sitio web cargar archivos en su cuenta S3 utilizando un navegador web estándar . Utiliza las URL con firma previa de S3 para evitar alteraciones y puede restringir el acceso por tamaño de archivo.
Si está hablando de un problema de seguridad (personas que cargan un gran archivo en su cubo), sí, PUEDE restringir el tamaño del archivo con la carga basada en navegador a S3.
Aquí hay un ejemplo de la variable "política", donde "rango de longitud de contenido" es el punto clave.
"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]
]
En este caso, si el tamaño del archivo de subida es> 10 mb, Amazon rechazará la solicitud de carga.
Por supuesto, antes de comenzar el proceso de carga, debe usar javascript para verificar el tamaño del archivo y hacer algunas alertas si lo hace.
Suponiendo que confía en que sus usuarios no omitan su sistema, puede verificar el tamaño del archivo y escribir en Javascript, luego cargarlo publicando su formulario a través de AJAX .