<commit_before><commit_msg>add README.md<commit_after>fvscurl
=============

IIJ GIOストレージサービス FV/S に、メジャーなコマンドラインhttpクライアントであるcurlを使ってアクセスするときに便利なスクリプトです。
REST APIにリクエストを送るときに必要な、認証パラメータを計算してcurlから送るリクエストに付与します。

[Amazon S3 Authentication Tool for Curl](http://aws.amazon.com/code/128)をベースにしています。
同ソフトウェアと同様、Apache License, Version 2.0です。

必要なもの
-------

* Perl 5.6.0以降
* Curl (http://curl.haxx.se/)
* CPANモジュール Digest-HMAC, FindBin,  MIME-Base64,  Getopt-Long-2.38

私の手元の環境(Mac OS X 10.7.2)では、どれも新たにインストールする必要はありませんでした。

セットアップ
-------

ホームディレクトリに以下のような書式で、AccessKeyidとSecretAccessKeyを記述したファイルを .fvscurl として保存しておきます。


    %fvsSecretAccessKeys = (
        # personal account
        personal => {
            id => '1ME55KNV6SBTR7EXG0R2',
            key => '<KEY>',
        },
    
       # corporate account
       company => {
            id => '1ATXQ3HHA59CYF1CVS02',
            key => '<KEY>',
        },
    );


使い方の例
-------

[friendly-name]は、.fvscurlで指定したpersonalやcompanyといったものです。

Bucketのリストを表示

    ./fvscurl.pl --id=[friendly-name] -- http://gss.iijgio.com/[bucket-name]

Bucketを作成

    ./fvscurl.pl --id=[friendly-name] --createBucket  -- http://gss.iijgio.com/[bucket-name]

ObjectをPUTするとき

    ./fvscurl.pl --id=[friendly-name] --put=<file-name> -- http://gss.iijgio.com/[bucket-name]/[key-name]

ObjectをDELETEするとき

    ./fvscurl.pl --id=[friendly-name] --delete -- http://gss.iijgio.com/[bucket-name]/[key-name]

ObjectをCOPYするとき

    ./fvscurl.pl --id=[friendly-name] --copy=[source-bucket-name/source-key-name] -- http://gss.iijgio.com/[bucket-name]/[key-name]
{'fraction_non_alphanumeric': 0.17162761241291957, 'fraction_numerical': 0.02026599113362888, 'mean_word_length': 3.0203562340966923, 'pattern_counts': {'":': 0, '<': 6, '<?xml version=': 0, '>': 12, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4833517', 'n_tokens_mistral': 802, 'n_tokens_neox': 731, 'n_words': 77}