Amazon S3のクライアント
=======================
Node.jsでAmazon S3のクライアントを作りました。
Pythonのs3cmdでもRiakCSなどの互換サービスに使えますが
S3の色が強いので、Location
やBucket
などの入出力を調整してスッキリとさせています。
特徴
s3cmd
とコマンドは類似していますが一部で動きが違います。
また、S3の基本的な機能のみを実装しています。
(RiakCSがサポートしている機能は実装する予定です。)
S3はバケットにオブジェクトがあると削除できないのでバケット内の
オブジェクトを削除してからバケットを削除するrb -R
のオプションが便利です。
インストール
$ npm install s3cli -g
使い方
コンフィグレーション
$ npm install s3cli -g
コンフィグレーション
接続に成功するとSuccessful configuration
が表示されます。
$ s3cli init
バケットの作成
バケットがサブドメインになります。
Amazon S3でバケットがbucket001
だと
bucket001.s3.amazonaws.com
がドメインです。
$ s3cli mb bucket001
Bucket 'bucket001' created
$ s3cli use bucket001
use bucket001
オブジェクトの作成
S3はKVS(キーバリューストア)の形式で格納されます。
このコマンドではキーにkey001
がバリューにvalue001
で登録されます。
$ s3cli set key001 value001
Object 'bucket001/key001' created
オブジェクトの確認
キーを指定すると登録されたバリューが表示されます。
$ s3cli get key001
value001
バケットとオブジェクトの一覧
バケットの一覧はlb
(リストバケット)です。
オブジェクトの一覧はls
(リスト)です。
(ここはs3cmd
と違うので注意してください)
デフォルトではテーブルスタイルで表示されます。
(オプションに-e
でJSON、-r
はXMLで表示されます。)
$ s3cli lb
┌───────────┬──────────────────────────┐
│ name │ creationdate │
├───────────┼──────────────────────────┤
│ bucket001 │ 2012-12-12T12:12:12.000Z │
└───────────┴──────────────────────────┘
$ s3cli ls
┌────────┬──────────────────────────┬──────┬──────────────┐
│ key │ lastmodified │ size │ storageclass │
├────────┼──────────────────────────┼──────┼──────────────┤
│ key001 │ 2012-12-12T12:12:12.000Z │ 8 │ STANDARD │
└────────┴──────────────────────────┴──────┴──────────────┘
Tips
S3はDropboxでも使われているように
ファイルをインターネットで公開することができます。
ファイルのアップロード
画像もテキストもアップロードできます。
(オプションの-P
でパブリックに公開されます。)
$ s3cli push -P file001.jpg ./file.jpg
File 'bucket001/file001.jpg' created
ファイルのダウンロード
ダウンロードしても内容は同じです。
$ s3cli pull file001.jpg ./file001.jpg
File 'bucket001/file001.jpg' saved
$ ls -l file*
-rw-r--r-- 1 user staff 2140 12 12 12:12 file.jpg
-rw-r--r-- 1 user staff 2140 12 12 12:22 file001.jpg
$ openssl md5 file.jpg
MD5(file.jpg)= 93aa8514b480b21c2f8c2535ccf33f0c
$ openssl md5 file001.jpg
MD5(file001.jpg)= 93aa8514b480b21c2f8c2535ccf33f0c
ブラウザで確認
パブリックのオプションを付けているので画像が公開されています。
$ s3cli info file001.jpg
URL: http://bucket001.s3.amazonaws.com/file001
$ open http://bucket001.s3.amazonaws.com/file001
Node Module
Node.jsでrequire
するとプログラムからクライアントを利用できます。
DropboxのようなサービスをNode.jsで作ることができます。
Author And Source
この問題について(Amazon S3のクライアント), 我々は、より多くの情報をここで見つけました https://qiita.com/ogomr/items/cde27db3b0f40bed297f著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .