LINUX

S4: herramienta de línea de comandos para sincronizar archivos locales con Amazon S3

S4, abreviatura de Simple Storage Solution Syncer, es una herramienta gratuita y de código abierto para sincronizar sus archivos con el servicio Amazon S3 que funciona desde la línea de comandos de Linux. Funciona en conjunto con S3 y funciona como soluciones propietarias como One Drive o DropBox. Proporciona velocidades de carga y descarga muy rápidas a costos asequibles. Además, S4 le brinda la capacidad de versionar sus cargas para que pueda volver fácilmente a una versión anterior si es necesario.

S4 La herramienta puede realizar un seguimiento de los cambios de archivo utilizando un archivo .index ubicado en cada archivo de la carpeta raíz que se está sincronizando. La carpeta viene con claves de cada archivo que se está sincronizando, incluidas las marcas de tiempo ubicadas tanto local como remotamente. Los archivos están en formato JSON. Las claves se pueden ver usando el subcomando ls. s3cmd es otra herramienta que tiene el mismo propósito que cubrimos anteriormente en nuestro artículo.

Instalación en Centos 7

Instale el repositorio de EPEL. EPEL es la abreviatura de Extra Repositories for Enterprise Linux.

# yum -y install epel release

Actualizar el repositorio

# yum repolist

Instalar Python 3

# yum install yum-utils
# yum-builddep python
# curl -O https://www.python.org/ftp/python/3.5.0/Python-3.5.0.tgz

Descomprime el archivo

 # tar xvf Python-3.5.0.tgz

Navega a la carpeta Python-3.5.0

 # cd  Python-3.5.0

Compila e instala python3

# ./configure
# make
# make install

Instalar pip3

# yum install python34-setuptools
# easy_install-3.4 pip

Instalar en pc

# pip install s4

Instalación en Ubuntu 17.01 y Debian 9

Instalar Python 3

apt-get install python3

Instale herramientas de desarrollo y algunos paquetes más para un entorno estable y robusto

apt-get install build-essential libssl-dev libffi-dev python-dev

Instalar pip3

# apt-get install python3-pip

Comprobando la versión de pip

# pip3 –version
pip 9.0.1 from /usr/lib/python3/dist-packages (python 3.5)

Instalar s4

# pip install s4

Configuración de S3 Bucket

Inicie sesión en su cuenta de AWS y diríjase a la sección ‘s3’ en ‘almacenamiento’ y cree un depósito. En este ejemplo, creé un depósito llamado magnum2030

s3 aws

Otorgue acceso ‘Público’ al depósito y otórguele permisos de lectura y escritura. También habilite ‘Lista’ y ‘Escribir objetos’.

acceso público aws bucket

acceso público aws bucket

En el depósito creado, proceda y cree una carpeta que usaremos para sincronizar archivos desde la Terminal. En este caso, la carpeta se llama Proyecto 1.

proyecto de cubo

Cómo ejecutar comandos de S4

Cree un directorio local y agregue algunos archivos

# mkdir project1
# cd project1
# touch file1.txt file2.txt


Correr

s4 add

Escriba la ruta del directorio local y proporcione sus credenciales de AWS

local folder: /home/Jamie/project1
s3 uri: s3://magnum2030/project1
AWS Access Key ID: AKIAJD53D9GCGKCD
AWS Secret Access Key:
region name: us-east-2
Provide a name for this entry [project1]:jamie

s4 agregar archivos

Sincronizar archivos

# s4 sync project1
# Syncing Project1 [/home/jamie/project1/  s3://magnum2030/project1/]

s4 sincronizar archivos

Dirígete a tu carpeta remota Proyecto 1 en el magnum2030 bucket y confirme la existencia de los dos archivos.

archivos sincronizados s4

Agreguemos algunas líneas de texto a nuestros archivos.

echo "Seasons greetings!" >> file1.txt
echo "Happy holiday folks!" >> file2.txt

Ejecute el comando sync para sincronizar los cambios en nuestros archivos remotos en AWS

s4 sync project1

Producción

Creating . (s3://magnum2030/project1/ => /home/jamie/project1/)
An error occurred while trying to update .: 'NoneType' object has no attribute 'total_size'
Updating file1.txt (/home/jamie/project1/ => s3://magnum2030/project1/)
Updating file2.txt (/home/jamie/project1/ => s3://magnum2030/project1/)

cambios de sincronización de s4

Dirígete a nuestros archivos en Proyecto 1 carpeta y confirme los cambios efectuados.

Sincronizar archivos continuamente

Para realizar una sincronización perpetua de archivos, use el comando ‘daemon’

s4 daemon project1

Cómo imprimir objetivos existentes

# s4 targets

Producción

s3://magnum2030/project1/] ?region=us-east-1: [/home/jamie/project1 <=> https://s3.console.aws.amazon.com/s3/buckets/magnum2030/project1/?region=us-east-1] Jamie: [/home/jamie/project1 <=> https://s3.console.aws.amazon.com/s3/buckets/magnum2030/project1/?region=us-east-2&tab=overview] Project1: [/home/jamie/Downloads <=> s3://mybucket/Downloads] james: [/home/jamie/project1 <=> s3://magnum2030/project1] jamie: [/home/jamie/project1 <=> s3://magnum2030/project1] jay: [/home/jamie/aws <=> s3://magnum2030/project1] project1: [/home/jamie/project1 <=> s3://magnum2030/project1] test1: [/home/jamie/project1 <=> s3://magnum2030/project1]>

Listado del contenido de su objetivo

# s4 ls project1

lista s4

Eliminar un objetivo

s4 rm target-name

Nota

El nombre del objetivo es el que se especifica en la penúltima línea a continuación.

s4 agregar archivos

Ignorando archivos

Cree un archivo .syncignore en el directorio que se sincroniza: Proyecto 1. Este archivo enumera y determina los archivos o directorios que se ignorarán durante el proceso de sincronización. Cada entrada de línea representa un archivo o carpeta que la función de sincronización debe ignorar. Por ejemplo, la existencia de «TestExample» en el archivo .syncignore obligará a la sincronización a ignorar todos los archivos y carpetas llamados «TestExample».

Espero que haya disfrutado de este artículo y agregue sus comentarios.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba
Cerrar