Я хочу загрузить несколько больших двоичных файлов в приватную корзину S3, используя Perl.
Я реализовал тестовый скрипт для простой загрузки файла с использованием библиотеки Net :: Amazon :: S3 .
Мой скрипт на Perl выглядит так:
use Net::Amazon::S3;
# S3 Config
$S3_ACCESS_KEY = "xxxxxx";
$S3_SECRET_KEY = "xxxxx";
$S3_HOST = "xxxxx";
$S3_BUCKET = "mybucket";
# Open S3 Connection
$s3 = Net::Amazon::S3->new(
{
aws_access_key_id => $S3_ACCESS_KEY,
aws_secret_access_key => $S3_SECRET_KEY,
host => $S3_HOST,
secure => 0,
}
);
# Create and open Bucket
$bucket = $s3->add_bucket(
{ bucket => $S3_BUCKET }
);
$bucket->add_key_filename(
"myfile.gz", # Object name on S3
"/tmp/myfile.gz", # Local filename
{ 'content_type'=> 'application/gzip' },
);
Это хорошо работает для небольших файлов, но для больших файлов (несколько ГБ) мне нужно реализовать загрузку из нескольких частей.
К сожалению, документация к этой библиотеке довольно лаконична.
Я думаю, что мне нужно реализовать такие методы, как InitiateMultipartUpload , PutPart и CompleteMultipartUpload , но я не уверен, как их использовать.
Есть ли пример многоэтапной загрузки с использованием этой библиотеки или любого другого варианта для этого с Perl?