NET::Amazon::S3を使ってAmazonS3へファイルをアップロードしてみた

いよいよ、perlスクリプトを使って、AmazonS3へファイルをアップロードしてみます。

適当なディレクトリに以下のスクリプトを作成(file_to_s3.pl)して、
実行権限をつけて保存します。


#!/usr/bin/perl

use strict;
use warnings;
use Net::Amazon::S3;

my $s3 = Net::Amazon::S3->new(
{ aws_access_key_id => 'ACCESSKEYID',
aws_secret_access_key => 'SECRETACCESSKEY',
}
);

my $bucket = $s3->bucket('BUCKETNAME');

$bucket->add_key_filename( 'FILENAME_TO', 'FILENAME_FROM',
{ content_type => 'CONTENTTYPE',
acl_short => 'public-read',},
);


ACCESSKEYID は、AmazonS3のアクセスキーIDを入れてください。
SECRETACCESSKEY は、AmazonS3のシークレットアクセスキーを入れてください。
BUCKETNAME は、AmazonS3に作成したバケット名を入れてください。
FILENAME_TO は、AmazonS3内に保存する際のファイル名を入れてください。
FILENAME_FROM は、AmazonS3へ転送したいファイル名を入れてください。
CONTENTTYPE は、転送するファイルのタイプです。'text/html'を指定したら、ブラウザでアクセスした際にhtmlファイルとして表示できました。

perlスクリプトでAmazonS3へファイルをアップロードする際に、ACLを同時に変更するには、acl_short で public-read を指定します。
こうすると、Public属性が付与された(Everyone Read)状態でアップロードできます。


実行権限の付け方は、ターミナルを起動して、このスクリプトを保存したディレクトリに移動して、chmodで行います。

cd /スクリプトを保存したディレクトリ/
chmod 700 file_to_s3.pl(※スクリプト名)

試しに転送するファイルをtest.htmlとしてアップロードしてみました。

perlスクリプトの実行方法は、ターミナルで、

./file_to_s3.pl

でOK。
無事AmazonS3へtest.htmlが転送されました。

http://バケット名.s3.amazonaws.com/test.html

でブラウザで表示されました。

MACにCPANをインストール
MACにNET::Amazon::S3をインストール
NET::Amazon::S3を使ってAmazonS3へファイルをアップロードしてみた

参考:(Perl) LinuxサーバからAmazon S3を用いる (1/2)
参考:刺身☆ブーメランのはてなダイアリー

0 件のコメント:

コメントを投稿