amazon-web-services - files - filedownload aspx
Cómo transferir archivos entre AWS s3 y AWS ec2 (6)
Con la CLI de AWS más reciente ( http://aws.amazon.com/cli/ ) puede usar los siguientes comandos para copiar archivos de su Instancia Ec2 o incluso su máquina local al almacenamiento S3.
aws s3 cp myfolder s3://mybucket/myfolder --recursive
A continuación, obtendrá algo como:
upload: myfolder/file1.txt to s3://mybucket/myfolder/file1.txt
upload: myfolder/subfolder/file1.txt to s3://mybucket/myfolder/subfolder/file1.txt
Si este es su primer uso de la herramienta CLI aws
, deberá ejecutar:
aws configure
Esto le pedirá que ingrese su clave de acceso y secreto junto con la especificación de una región predeterminada.
Estoy usando la instancia de AWS ec2. En esta instancia, estoy generando algunos archivos. Estas operaciones se realizan por datos de usuario.
Ahora quiero almacenar esos archivos en s3 escribiendo código en los datos del usuario.
- Entonces, ¿cómo puedo almacenar esos archivos en s3?
- ¿Tienes algún tutorial sobre esto?
Estoy usando http://s3tools.org/s3cmd para almacenar los archivos de respaldo de la base de datos exportados por la noche desde mi instancia de ec2. Después de la configuración de s3cmd, que puede leer en su sitio, puede ejecutar un comando como:
s3cmd put ./myfile s3://mybucket
Hay varias formas de enviar archivos a S3. Los he enumerado a continuación junto con la instalación y la documentación donde sea relevante.
S3CMD : ( http://s3tools.org/s3cmd ) Puede instalar esto en debian / ubuntu fácilmente a través de apt-get install s3cmd, luego ejecute desde la línea de comandos. Podría incorporar esto en un script bash o su programa.
S3FS : ( http://www.pophams.com/blog/howto-setups3fsonubuntu1104x64 y https://code.google.com/p/s3fs/wiki/InstallationNotes ) ... Esto monta un cubo s3, por lo que se ve como un disco local Se requiere un poco más de esfuerzo para la configuración, pero una vez que el disco está montado, no necesita hacer nada especial para obtener los archivos en su cubo.
Si usa un CMS (usemos Drupal como ejemplo), puede tener la opción de usar un módulo para manejar el acceso a su contenedor, por ejemplo http://drupal.org/project/storage_api
Finalmente, puede usar las implementaciones del lenguaje de programación para manejar toda la lógica usted mismo, para PHP puede comenzar con este http://undesigned.org.za/2007/10/22/amazon-s3-php-class y ver la documentación aquí http://undesigned.org.za/2007/10/22/amazon-s3-php-class/documentation
Un ejemplo de la implementación de PHP:
<?php
// Simple PUT:
if (S3::putObject(S3::inputFile($file), $bucket, $uri, S3::ACL_PRIVATE)) {
echo "File uploaded.";
} else {
echo "Failed to upload file.";
}
?>
Un ejemplo de s3cmd:
s3cmd put my.file s3://bucket-url/my.file
Editar
Otra opción que vale la pena mencionar es AWS CLI http://aws.amazon.com/cli/ Está ampliamente disponible, por ejemplo, ya está incluido en AmazonLinux y se puede descargar a través de Python (que está instalado en muchos sistemas, incluidos Linux y Windows). .
http://docs.aws.amazon.com/cli/latest/reference/s3/index.html
Comandos disponibles, cp ls mb mv rb rm sync sitio web
http://docs.aws.amazon.com/cli/latest/reference/s3api/index.html para interactuar con S3
Instale el paquete s3cmd como:
yum install s3cmd
o
sudo apt-get install s3cmd
dependiendo de tu sistema operativo. Luego copie datos con esto:
s3cmd get s3://tecadmin/file.txt
También puedo listar los archivos.
Para obtener más detalles, vea esto
Todos los intentos de montar s3 como un pseudo sistema de archivos son problemáticos. Es una tienda de objetos, no un dispositivo de bloques. Si debe montarlo porque tiene un código heredado que debe tener rutas de archivos locales, intente con goofys. Es aproximadamente 50 veces más rápido que s3fs. https://github.com/kahing/goofys
s3cmd es un poco largo en el diente en estos días. El AWS cli es una mejor opción en estos días. La sintaxis es un poco menos conveniente, pero es una herramienta menos que necesita mantener.
Si puede mantener el acceso http. Te hará la vida más fácil a largo plazo.
Use s3cmd
para eso:
s3cmd get s3://AWS_S3_Bucket/dir/file
Vea cómo instalar s3cmd here :
Esto funciona para mí ...