que - ¿Cómo subir archivos directamente a Amazon S3 desde un servidor remoto?
que es un bucket (4)
¿Es posible cargar un archivo a S3 desde un servidor remoto?
El servidor remoto es básicamente un servidor de archivos basado en URL. Ejemplo, usando http://example.com/1.jpg , sirve la imagen. No hace nada más y no puede ejecutar código en este servidor.
Es posible tener otro servidor que indique a S3 que cargue un archivo desde http://example.com/1.jpg
upload from http://example.com/1.jpg
server -------------------------------------------> S3 <-----> example.com
Creo que la sugerencia proporcionada es bastante buena, puede SCP el archivo a S3 Bucket. Dar el archivo pem será una autenticación sin contraseña, a través del archivo PHP puede validar las extensiones. El archivo PHP puede pasar el archivo, como argumento al comando SCP.
El único problema con esta solución es que debe tener su instancia en AWS. No puede usar esta solución si su sitio web está alojado en otros proveedores de alojamiento y está intentando cargar archivos directamente a S3 Bucket.
Puedes usar el comando scp desde la Terminal.
1) utilizando el terminal, vaya al lugar donde está el archivo que desea transferir al servidor
2) escribe esto:
scp -i yourAmazonKeypairPath.pem fileNameThatYouWantToTransfer.php [email protected]:
NB: ¡Agregue "ec2-user @" antes de sus materiales ec2blablbla que obtuvo del sitio web de Ec2! ¡Este es un error tan delicado!
3) Se cargará su archivo y se mostrará el progreso. Cuando está al 100%, ¡ya está!
Si no puede ejecutar el código en el servidor o ejecutar solicitudes, entonces no, no puede hacer esto. Deberá descargar el archivo a un servidor o computadora que posea y cargar desde allí.
Puede ver las operaciones que puede realizar en amazon S3 en http://docs.amazonwebservices.com/AmazonS3/latest/API/APIRest.html
Al verificar las operaciones para las API REST y SOAP, verá que no hay manera de darle a Amazon S3 una URL remota y hacer que tome el objeto por usted. Todas las solicitudes PUT requieren que los datos del objeto se proporcionen como parte de la solicitud. Es decir, el servidor o la computadora que está iniciando la solicitud web debe tener los datos.
He tenido un problema similar en el pasado en el que quería descargar las miniaturas de Facebook de mis usuarios y subirlas a S3 para usarlas en mi sitio. La forma en que lo hice fue descargar la imagen de Facebook en la memoria de mi servidor y luego cargarla en Amazon S3, todo fue en menos de 2 segundos. Una vez que se completó la carga a S3, escriba el cubo / clave en una base de datos.
Lamentablemente no hay otra forma de hacerlo.
Técnicamente es posible, utilizando la versión 4 de AWS Signature , asumiendo que su remote server
es el cliente en la imagen a continuación, puede preparar un formulario en el servidor principal y enviar los campos del formulario al servidor remoto para que lo curl
. Ejemplo detallado here .