Me gustaría hacer un cron que ejecute un script en linux para que suba los archivos de un directorio en amazon s3, creo que es la forma más optima ya que subir el fichero justo cuando el usuario lo sube puede hacer que sean las peticiones muy lentas.
¿Habéis usado o implementado algo en especial para subir a S3 aunque no sea en bash?
estoy poniendo en practica la librería s3cmd recomendada por Rafael ya que lo tengo que hacer por bash, por si alguien le sirve aquí tiene los pasos para usarla:
1- conectarse por ssh al servidor
2- instalar el paquete: apt-get install s3cmd
3- s3cmd --configure
4- introducir el access key y secret key, los puedes conseguir aquí
https://console.aws.amazon.com/iam/home?#security_credential
5- seguir los siguiente pasos, yo los he ignorado pulsando intro para que tome la opción por defecto.
6- para finalizar: Save settings? [y/N] Y
7- el fichero de configuración se guardará en /root/.s3cfg
comandos básicos:
ver buckets en la cuenta de s3
s3cmd ls
ver contenido de un bucket
s3cmd ls s3://nombre-bucket/
ver contenido de la carpeta de un bucket
s3cmd ls s3://nombre-bucket/dentro/una/carpeta/
sincronizar una carpeta a nuestro bucket
s3cmd sync "/home/usuario/public_html/uploads/" "s3://nombre-bucket/uploads/"
sincronizar una carpeta a nuestro bucket y poner los ficheros con permisos públicos
s3cmd sync -P --acl-public "/home/usuario/public_html/uploads/" "s3://nombre-bucket/uploads/"
sincronizar una carpeta a nuestro bucket y también los ficheros borrados
s3cmd sync --delete-removed "/home/usuario/public_html/uploads/" "s3://nombre-bucket/uploads/"
¿Habéis usado o implementado algo en especial para subir a S3 aunque no sea en bash?
23/01/2014 20:00
$ s3cmd put myfile s3://mybucket
23/01/2014 20:19
23/01/2014 20:28
Puedes incluso crear distribuciones CloudFront desde línea de comandos.
Realmente potente y versátil.
01/02/2014 14:57
1- conectarse por ssh al servidor
2- instalar el paquete: apt-get install s3cmd
3- s3cmd --configure
4- introducir el access key y secret key, los puedes conseguir aquí
https://console.aws.amazon.com/iam/home?#security_credential
5- seguir los siguiente pasos, yo los he ignorado pulsando intro para que tome la opción por defecto.
6- para finalizar: Save settings? [y/N] Y
7- el fichero de configuración se guardará en /root/.s3cfg
comandos básicos:
ver buckets en la cuenta de s3
s3cmd ls
ver contenido de un bucket
s3cmd ls s3://nombre-bucket/
ver contenido de la carpeta de un bucket
s3cmd ls s3://nombre-bucket/dentro/una/carpeta/
sincronizar una carpeta a nuestro bucket
s3cmd sync "/home/usuario/public_html/uploads/" "s3://nombre-bucket/uploads/"
sincronizar una carpeta a nuestro bucket y poner los ficheros con permisos públicos
s3cmd sync -P --acl-public "/home/usuario/public_html/uploads/" "s3://nombre-bucket/uploads/"
sincronizar una carpeta a nuestro bucket y también los ficheros borrados
s3cmd sync --delete-removed "/home/usuario/public_html/uploads/" "s3://nombre-bucket/uploads/"
31/01/2014 15:51
Seria crear una tarea de este tipo:
s3: {
options: {
accessKeyId: "TU_AWS_ACCESS_KEY_ID",
secretAccessKey: "TU_AWS_SECRET_ACCESS_KEY",
bucket: "NOMBRE_DE_TU_BUCKET_S3"
},
build: {
cwd: "public/",
src: "**"
}
}
En mi blog lo explico un poco de cuando lo probé: http://carlosazaustre.es/blog/subiendo-archivos-estaticos-aws-s3-con-node/
Espero que te sirva. Saludos!