s3cmd обфусцирует имена файлов (меняется на случайное значение) на стороне Amazon S3 (локальное исходное имя файла)

Мой .s3cfg с парольной фразой шифрования GPG и другими настройками безопасности. Вы бы порекомендовали другие меры безопасности?

[default]
access_key = $USERNAME
access_token = 
add_encoding_exts = 
add_headers = 
bucket_location = eu-central-1
ca_certs_file = 
cache_file = 
check_ssl_certificate = True
check_ssl_hostname = True
cloudfront_host = cloudfront.amazonaws.com
default_mime_type = binary/octet-stream
delay_updates = False
delete_after = False
delete_after_fetch = False
delete_removed = False
dry_run = False
enable_multipart = True
encoding = UTF-8
encrypt = False
expiry_date = 
expiry_days = 
expiry_prefix = 
follow_symlinks = False
force = False
get_continue = False
gpg_command = /usr/local/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 = $PASSPHRASE
guess_mime_type = True
host_base = s3.amazonaws.com
host_bucket = %(bucket)s.s3.amazonaws.com
human_readable_sizes = False
invalidate_default_index_on_cf = False
invalidate_default_index_root_on_cf = True
invalidate_on_cf = False
kms_key = 
limitrate = 0
list_md5 = False
log_target_prefix = 
long_listing = False
max_delete = -1
mime_type = 
multipart_chunk_size_mb = 15
multipart_max_chunks = 10000
preserve_attrs = True
progress_meter = True
proxy_host = 
proxy_port = 0
put_continue = False
recursive = False
recv_chunk = 65536
reduced_redundancy = False
requester_pays = False
restore_days = 1
secret_key = $PASSWORD
send_chunk = 65536
server_side_encryption = False
signature_v2 = False
simpledb_host = sdb.amazonaws.com
skip_existing = False
socket_timeout = 300
stats = False
stop_on_error = False
storage_class = 
urlencoding_mode = normal
use_https = True
use_mime_magic = True
verbosity = WARNING
website_endpoint = http://%(bucket)s.s3-website-%(location)s.amazonaws.com/
website_error = 
website_index = index.html

Я использую эту команду для загрузки / синхронизации моей локальной папки в Amazon S3.

s3cmd -e -v put --recursive --dry-run /Users/$USERNAME/Downloads/ s3://dgtrtrtgth777
INFO: Compiling list of local files...
INFO: Running stat() and reading/calculating MD5 values on 15957 files, this may take some time...
INFO: [1000/15957]
INFO: [2000/15957]
INFO: [3000/15957]
INFO: [4000/15957]
INFO: [5000/15957]
INFO: [6000/15957]
INFO: [7000/15957]
INFO: [8000/15957]
INFO: [9000/15957]
INFO: [10000/15957]
INFO: [11000/15957]
INFO: [12000/15957]
INFO: [13000/15957]
INFO: [14000/15957]
INFO: [15000/15957]

Я протестировал шифрование с помощью Transmit GUI S3 Client и не получил текстовые файлы.

Но я вижу оригинальное имя файла. Я хочу изменить имя файла на случайное значение, но иметь локальное исходное имя файла (отображение?). Как я могу это сделать?

Каковы недостатки, если мне нужно восстановить файлы? Я использую Amazon S3 только в качестве резервной копии, в дополнение к моей резервной копии TimeMachine.

1 ответ

Решение

Если вы используете "случайные" имена, то это не синхронизация.

Если ваша единственная запись в именах файлов / сопоставлении является локальной, восстановить резервную копию в случае локального сбоя будет невозможно.

Если вам не нужны все версии ваших файлов, я бы предложил поместить все в (возможно, зашифрованный) сжатый архив перед загрузкой.

В противном случае вам придется написать небольшой скрипт, который перечисляет все файлы и по отдельности выполняет s3cmd put указав случайный пункт назначения, где отображение добавляется в файл журнала, который должен быть первым, что вы s3cmd put на ваш сервер. Я не рекомендую это для чего-то столь же важного, как хранение ваших резервных копий.

Скелет, показывающий, как это может работать:

# Save all files in backupX.sh where X is the version number
find /Users/$USERNAME/Downloads/ | awk '{print "s3cmd -e -v put "$0" s3://dgtrshitcrapola/"rand()*1000000}' > backupX.sh

# Upload the mapping file
s3cmd -e -v put backupX.sh s3://dgtrshitcrapola/

# Upload the actual files
sh backupX.sh

# Add cleanup code here

Однако вам нужно будет обрабатывать конфликты имен файлов, неудачные загрузки, конфликты версий,... почему бы не использовать существующий инструмент, который выполняет резервное копирование на S3?

Другие вопросы по тегам