s3cmd + debian8 で実現する
事前準備
インストールとセットアップ
root@hostname:/home/shimizu# aptitude install s3cmd
以下の新規パッケージがインストールされます:
python-dateutil{a} python-magic{a} s3cmd
...
root@hostname:/home/shimizu# s3cmd --configure
Enter new values or accept defaults in brackets with Enter.
Refer to user manual for detailed description of all options.
Access key and Secret key are your identifiers for Amazon S3. Leave them empty for using the env variables.
Access Key: *****
Secret Key: *****
Encryption password is used to protect your files from reading
by unauthorized persons while in transfer to S3
Encryption password: *****
Path to GPG program [/usr/bin/gpg]:
When using secure HTTPS protocol all communication with Amazon S3
servers is protected from 3rd party eavesdropping. This method is
slower than plain HTTP and can't be used if you're behind a proxy
Use HTTPS protocol [No]:
On some networks all internet access must go through a HTTP proxy.
Try setting it here if you can't connect to S3 directly
HTTP Proxy server name:*****
...
Configuration saved to '/root/.s3cfg'
root@hostname:/home/shimizu# s3cmd --version
s3cmd version 1.5.0-rc1
s3cmd操作
すべてはmanコマンドに
COMMANDS
s3cmd can do several actions specified by the following commands.
s3cmd mb s3://BUCKET
Make bucket
s3cmd rb s3://BUCKET
Remove bucket
s3cmd ls [s3://BUCKET[/PREFIX]]
List objects or buckets
s3cmd la
List all object in all buckets
s3cmd put FILE [FILE...] s3://BUCKET[/PREFIX]
Put file into bucket
s3cmd get s3://BUCKET/OBJECT LOCAL_FILE
Get file from bucket
s3cmd del s3://BUCKET/OBJECT
Delete file from bucket
s3cmd rm s3://BUCKET/OBJECT
Delete file from bucket (alias for del)
s3cmd restore s3://BUCKET/OBJECT
Restore file from Glacier storage
s3cmd sync LOCAL_DIR s3://BUCKET[/PREFIX] or s3://BUCKET[/PREFIX] LOCAL_DIR
Synchronize a directory tree to S3 (checks files freshness using size and md5 checksum, unless overriden bns, se e below)
s3cmd du [s3://BUCKET[/PREFIX]]
Disk usage by buckets
s3cmd info s3://BUCKET[/OBJECT]
Get various information about Buckets or Files
s3cmd cp s3://BUCKET1/OBJECT1 s3://BUCKET2[/OBJECT2]
Copy object
s3cmd modify s3://BUCKET1/OBJECT
Modify object metadata
s3cmd mv s3://BUCKET1/OBJECT1 s3://BUCKET2[/OBJECT2]
Move object
s3cmd setacl s3://BUCKET[/OBJECT]
Modify Access control list for Bucket or Files
s3cmd setpolicy FILE s3://BUCKET
Modify Bucket Policy
s3cmd delpolicy s3://BUCKET
Delete Bucket Policy
s3cmd multipart s3://BUCKET [Id]
show multipart uploads
s3cmd abortmp s3://BUCKET/OBJECT Id
abort a multipart upload
s3cmd listmp s3://BUCKET/OBJECT Id
list parts of a multipart upload
s3cmd accesslog s3://BUCKET
Enable/disable bucket access logging
s3cmd sign STRING-TO-SIGN
Sign arbitrary string using the secret key
s3cmd signurl s3://BUCKET/OBJECT expiry_epoch
Sign an S3 URL to provide limited public access with expiry
s3cmd fixbucket s3://BUCKET[/PREFIX]
Fix invalid file names in a bucket
s3cmd expire s3://BUCKET
Set or delete expiration rule for the bucket
s3cmd setlifecycle s3://BUCKET
Upload a lifecycle policy for the bucket
s3cmd dellifecycle s3://BUCKET
Remove a lifecycle policy for the bucket
よく使いそうなコマンドを試してみる
### bucket作成 ### root@hostname:/home/shimizu# s3cmd mb s3://www.akat.info.bk Bucket 's3://www.akat.info.bk/' created ### bucket表示 ### root@hostname:/home/shimizu# s3cmd ls 2014-07-02 15:22 s3://www.akat.info ### ファイルを送る ### root@hostname:/home/shimizu# s3cmd put test.txt s3://www.akat.info test.txt -> s3://www.akat.info/test.txt [1 of 1] 25623 of 25623 100% in 0s 279.38 kB/s done ### 確認する ### root@hostname:/home/shimizu# s3cmd la 2015-10-31 13:59 25623 s3://www.akat.info/test.txt ### ファイルを修得する ### root@hostname:/home/shimizu# s3cmd get s3://www.akat.info/test.txt ### 容量が大きいとリトライが何回もかかってエラー ### root@hostname:/home/shimizu# s3cmd put 5G.file s3://www.akat.info ... WARNING: Upload failed: /5G.file?partNumber=23&uploadId=... ([Errno 104] Connection reset by peer) WARNING: Retrying on lower speed (throttle=0.00) ... ### 容量が大きいファイルを送る場合(--multipart-chunk-size-mbというオプションもあり) ### root@hostname:/home/shimizu# s3cmd --multipart-chunk-size-mb=5 put 5G.file s3://www.akat.info ### 容量算出 ### root@hostname:/home/shimizu# s3cmd du s3://www.akat.info 5368709120 s3://www.akat.info/ ### s3間でコピー(移動も可能) ### root@hostname:/home/shimizu# s3cmd cp s3://www.akat.info/test.txt s3://www.akat.info.bk/ File s3://www.akat.info/test.txt copied to s3://www.akat.info.bk/test.txt root@hostname:/home/shimizu# s3cmd la 2015-10-31 13:59 25623 s3://www.akat.info/test.txt 2015-10-31 14:07 25623 s3://www.akat.info.bk/test.txt ### 期限付きアクセス ### root@hostname:/home/shimizu# s3cmd signurl s3://www.akat.info/test.txt 300 http://www.akat.info.s3.amazonaws.com/test.txt?AWSAccessKeyId=AKIAIKWXKI6T6S3VPCPA&Expires=300&Signature=5MEpFuEGrOzTgCNVDpAfsLMn02Q%3D …URLはできたが、アクセスするとなぜかうまくいかなかった ### syncする ### root@hostname:/home/shimizu# s3cmd sync testdir s3://www.akat.info testdir/test -> s3://www.akat.info/testdir/test [1 of 2] 4 of 4 100% in 0s 43.85 B/s done testdir/test2 -> s3://www.akat.info/testdir/test2 [2 of 2] 13 of 13 100% in 0s 276.01 B/s done Done. Uploaded 17 bytes in 0.2 seconds, 104.52 B/s. Copied 0 files saving 0 bytes transfer. ### 完全同期する ### root@hostname:/home/shimizu# s3cmd --delete-removed sync test3.txt s3://www.akat.info File s3://www.akat.info/delete.txt deleted File s3://www.akat.info/testdir/test deleted File s3://www.akat.info/testdir/test2 deleted test3.txt -> s3://www.akat.info/test3.txt [1 of 1] 0 of 0 0% in 0s 0.00 B/s done ### restoreする ### root@hostname:/home/shimizu# s3cmd sync s3://www.akat.info/test3.txt testdir/
