У меня есть целая куча файлов на сервере, и я хочу загрузить их на S3. Файлы хранятся с расширением .data, но на самом деле это всего лишь набор jpeg, png, zips или pdf.Загрузка файлов на s3 с помощью s3cmd параллельно
Я уже написал короткий скрипт, который находит тип mime и загружает их на S3, и это работает, но оно медленное. Есть ли способ сделать следующий запуск с использованием gnu parallel?
#!/bin/bash
for n in $(find -name "*.data")
do
data=".data"
extension=`file $n | cut -d ' ' -f2 | awk '{print tolower($0)}'`
mimetype=`file --mime-type $n | cut -d ' ' -f2`
fullpath=`readlink -f $n`
changed="${fullpath/.data/.$extension}"
filePathWithExtensionChanged=${changed#*internal_data}
s3upload="s3cmd put -m $mimetype --acl-public $fullpath s3://tff-xenforo-data"$filePathWithExtensionChanged
response=`$s3upload`
echo $response
done
Также я уверен, что этот код может быть значительно улучшен в целом :) Отзывы были бы весьма полезными.
Параллельная загрузка возможна с Python и бота – helloV
Нодом Я мог бы написать что-то в дороге или на другом языке, но я пытался сделать это «все в Баше» .. без особой причины. –
[Возможное решение здесь] (http://blog.aclarke.eu/moving-copying-lots-of-s3-files-quickly-using-gnu-parallel/) – helloV