Cómo cifrar tus datos
S3cmd puede cifrar tus datos mientras los carga en DreamObjects. Para utilizar esta funcionalidad, primero debes configurar tu archivo .s3cfg como se muestra en este artículo:
Configurar tu archivo .s3cfg
Abre el archivo en el directorio de tu usuario.
[server]$nano ~/.s3cfg
Agrega las siguientes líneas para que puedas usar el cifrado. Asegúrate de crear tu propia contraseña para gpg_passphrase:
check_ssl_certificate = True check_ssl_hostname = True gpg_command = /usr/bin/gpg gpg_decrypt = %(gpg_command)s -d --verbose --no-use-agent --batch --yes --passphrase-fd %(passphrase_fd)s -o %(output_file)s %(input_file)s gpg_encrypt = %(gpg_command)s -c --verbose --no-use-agent --batch --yes --passphrase-fd %(passphrase_fd)s -o %(output_file)s %(input_file)s gpg_passphrase =yourpassword
Tu configuración ahora está configurada para encriptar datos.
Cifrar datos mientras se cargan
Para cifrar tus datos durante la carga, usa la marca -e. En el siguiente ejemplo, bucket-name es el nombre del bucket al que estás cargando contenido. textfile.txt es el nombre del único archivo que estás cargando:
[server]$s3cmd -e puttestfile.txts3://bucket-nameupload: '/tmp/tmpfile-zFGwbLHMVEINdHh3615n' -> 's3://bucket-name/testfile.txt' [1 of 1] 63 of 63 100% in 0s 129.96 B/s done
Para confirmar que está encriptado, navega a la página DreamObjects. Haz clic en el botón Ver objetos debajo de tu nombre de usuario. Se abre un mensaje para que puedas ver los objetos en tu bucket.

Haz clic en el objeto, copia la URL y luego pégalo en un navegador. Verás que los datos del archivo están cifrados.

Descifrar un archivo
Cuando usas s3cmd para descargar un archivo cifrado, se descifra automáticamente:
[server]$s3cmd get s3://bucket-name/encrypted-file.txtdownload: 's3://bucket-name/encrypted-file.txt' -> './encrypted-file.txt' [1 of 1] 70 of 70 100% in 0s 323.19 B/s done
Si lees el contenido del archivo, verás que ya no está encriptado:
[server]$catencrypted-file.txtTesting a file
Firmar una URL de S3 para proporcionar acceso público limitado
Puedes establecer manualmente una fecha de vencimiento para acceder a un archivo. Para hacer esto, primero debes convertir la fecha en una marca de tiempo de Unix Epoch.
Decide la fecha límite en la que deseas permitir que se firme/acceda a la URL.
Visita Epoch Converter para convertir tu fecha en una marca de tiempo de la época. Se verá como una cadena de números. Por ejemplo: 1540232086
Corre el siguiente comando para firmar la URL hasta esta marca de tiempo. (Asegúrate de cambiar el nombre del bucket y el nombre del archivo por tu información real).
[server]$s3cmd signurl s3://my_bucket/my_file.png 1540232086http://my-bucket.s3.us-east-005.dream.io/my_file.png?AWSAccessKeyId=DHDPTCQ3WFGHPSS5FAXG&Expires=1540232086&Signature=9nf8f9kG%2FqDa76rmET4R%2FpbtaGM%3DEsto genera la URL firmada.
Alternativamente, puedes firmarla por 1 semana usando este formato:
[server]$s3cmd signurl s3://my_bucket/my_file.png$(echo "`date +%s` + 3600 * 24 * 7" | bc)Comparte esta URL para que cualquiera pueda acceder ese archivo hasta la fecha que hayas especificado.