AWS ec2インスタンスを使用しています。このインスタンスでは、いくつかのファイルが作成されています。これらの操作は、ユーザーデータによって行われます。
次に、ユーザーデータ自体にコードを記述して、これらのファイルをs3に保存します。
最新のAWS CLI( http://aws.Amazon.com/cli/ )を使用すると、次のコマンドを使用して、Ec2インスタンスまたはローカルマシンからS3ストレージにファイルをコピーできます。
aws s3 cp myfolder s3://mybucket/myfolder --recursive
次のようなものが得られます:
upload: myfolder/file1.txt to s3://mybucket/myfolder/file1.txt
upload: myfolder/subfolder/file1.txt to s3://mybucket/myfolder/subfolder/file1.txt
aws
CLIツールを初めて使用する場合は、次を実行する必要があります。
aws configure
これにより、デフォルトの地域を指定するとともに、アクセスキーとシークレットを入力するように求められます。
ファイルをS3に送信する方法はいくつかあります。関連するインストールとドキュメントとともに、それらを以下にリストしました。
S3CMD:( http://s3tools.org/s3cmd )これをdebian/ubuntuにapt-get install s3cmd経由で簡単にインストールし、コマンドラインから実行できます。これをbashスクリプトまたはプログラムに組み込むことができます。
S3FS:( http://www.pophams.com/blog/howto-setups3fsonubuntu1104x64 および https://code.google.com/p/s3fs/wiki/InstallationNotes )...これはs3バケットをマウントするため、ローカルディスクのように見えます。セットアップにはもう少し手間がかかりますが、ディスクがマウントされると、バケット内のファイルを取得するために特別なことをする必要はありません。
CMSを使用する場合(例としてDrupalを使用)、バケットへのアクセスを処理するためにモジュールを使用のオプションがある場合があります。例: http ://drupal.org/project/storage_api
最後に、プログラミング言語の実装を使用して、すべての論理を自分で処理できます。PHPこれで開始できます http://undesigned.org。 za/2007/10/22/Amazon-s3-php-class およびこちらのドキュメントをご覧ください http://undesigned.org.za/2007/10/22/Amazon-s3-php-class/ドキュメント
PHP実装の例:
<?php
// Simple PUT:
if (S3::putObject(S3::inputFile($file), $bucket, $uri, S3::ACL_PRIVATE)) {
echo "File uploaded.";
} else {
echo "Failed to upload file.";
}
?>
S3cmdの例:
s3cmd put my.file s3://bucket-url/my.file
言及する価値のあるもう1つのオプションはAWS CLIです http://aws.Amazon.com/cli/ これは広く利用できます。たとえば、すでにAmazonLinuxに含まれており、Python(LinuxやWindowsを含む多くのシステムにインストールされます)。
http://docs.aws.Amazon.com/cli/latest/reference/s3/index.html
利用可能なコマンド、cp ls mb mv rb rm sync Webサイト
http://docs.aws.Amazon.com/cli/latest/reference/s3api/index.html S3との対話用
インストールs3cmdパッケージとして:
yum install s3cmd
または
Sudo apt-get install s3cmd
お使いのOSによって異なります。次に、これを使用してデータをコピーします。
s3cmd get s3://tecadmin/file.txt
ls
もファイルをリストできます。
詳細は this をご覧ください
s3cmd を使用して、毎晩ec2インスタンスからエクスポートされたデータベースバックアップファイルを保存します。サイトで確認できるs3cmdの構成後、次のようなコマンドを実行できます。
s3cmd put ./myfile s3://mybucket
S3を疑似ファイルシステムとしてマウントしようとすると、問題が発生します。ブロックデバイスではなく、オブジェクトストアです。ローカルファイルパスが必要なレガシーコードがあるためにマウントする必要がある場合は、goofysを試してください。 s3fsよりも約50倍高速です。 https://github.com/kahing/goofys
最近のs3cmdは少し長めです。最近、AWS cliがより良いオプションです。構文は少し便利ではありませんが、保持する必要があるツールは1つ少なくなります。
Httpアクセスに固執できる場合。長期的にはあなたの生活が楽になります。
一般的にベストな答えは、上記のaws
コマンドを使用することだと思いますが、他に何もインストールする必要がない場合は、ファイルをダウンロードするだけでよいことも言及しておく価値があります。 HTTPS経由、たとえばブラウザを開き、次の場所に移動します。
https://s3.amazonaws.com/
(bucketName)/
(relativePath)/
(fileName)
また、wget
またはcurl
を使用して、シェルプロンプトから転送することもできます。
AWS CLIでは、次のコマンドを使用して、ZipファイルをEC2インスタンスからS3にコピーしました
aws s3 cp file-name.Zip s3://bucket-name/