本ページではSQUIDやご自身の端末にインストールしたAWS CLI(AWS Command Line Interface)を使って、SQUIDのファイルシステムEXAScalerやONION-objectに対して、S3コマンドやS3APIコマンドでアクセスする方法を解説します。
事前準備
アクセスキーの取得
アクセスキー取得(SQUID)
アクセスキー取得(ONION-object)
AWS CLIのインストール
AWS CLIの初期設定
aws configure --profile=[profie name]
→次のようなメッセージが表示されます。
AWS Access Key ID [None]: (事前に取得したアクセスキーを入力してください)
AWS Secret Access Key [None]: (事前に取得したシークレットキーを入力してください)
Default region name [None]: (ONION-objectの場合は"osakau"と入力してください。SQUIDの場合は設定不要です)
Default output format [None]:設定不要です。空欄のままEnterキーを押してください。
以下の環境変数を指定することで、デフォルトのprofileを設定可能です。本環境変数を指定しない場合は、S3/S3 APIコマンドの度に--profileの指定が必要となります。
[Windowsの場合]
set AWS_DEFAULT_PROFILE=[profile name]
[Mac Linuxの場合]
export AWS_DEFAULT_PROFILE=[profile name]
デフォルトのprofileを確認する場合は、以下を実行してください。
aws configure list
S3コマンドの利用
S3APIコマンドと比較するとコマンドが簡単です。バケットの作成/削除、オブジェクトの移動/削除といった単純な操作にご利用ください。
はじめに
SQUIDにアクセスする場合 | --endpoint-url=https://squidgw.hpc.cmc.osaka-u.ac.jp |
---|---|
ONION-objectにアクセスする場合 | --endpoint-url=https://s3-osakau.oniongw.hpc.cmc.osaka-u.ac.jp |
バケット作成
aws --endpoint-url=[endpoint URL] s3 mb s3://[作成するバケット名]
[ONION-object上で"onion-object-test"というバケットを作成するコマンド例]
aws --endpoint-url=https://s3-osakau.oniongw.hpc.cmc.osaka-u.ac.jp s3 mb s3://onion-object-test
※SQUIDでもS3APIを使ってバケット作成は可能ですが、フロントエンドサーバでファイルを直接操作した内容が同期できません。したがって、フロントエンドにログインして、s3dsbucket コマンドを使ってバケットを作成いただくことを推奨します。
データコピー
aws --endpoint-url=[endpoint URL] s3 cp s3://(バケット名)/(キー)
[ローカルの"sample"というファイルをONION-object上のバケット"onion-object-test"にコピーするコマンド例]
aws --endpoint-url=https://s3-osakau.oniongw.hpc.cmc.osaka-u.ac.jp s3 cp sample s3://onion-object-test
[ローカルの"sample"というファイルをONION-object上のバケット"onion-object-test"内のディレクトリ"dir"配下にコピーするコマンド例]
aws --endpoint-url=https://s3-osakau.oniongw.hpc.cmc.osaka-u.ac.jp s3 cp sample s3://onion-object-test/dir/
[現在のディレクトリ中の全てのファイルをONION-object上のバケット"onion-object-test"内のディレクトリ"dir"配下にコピーするコマンド例]
aws --endpoint-url=https://s3-osakau.oniongw.hpc.cmc.osaka-u.ac.jp s3 cp ./ s3://onion-object-test/dir/ --recursive
※--recursiveオプションを使用することで、指定したディレクトリ内の全てのファイルに対してコマンドを実行します。
バケットおよびオブジェクトの一覧表示
aws --endpoint-url=[endpoint URL] s3 ls s3://(バケット名)
[ONION-object上のバケット一覧を表示]
aws --endpoint-url=https://s3-osakau.oniongw.hpc.cmc.osaka-u.ac.jp s3 ls
[ONION-object上のバケット"onion-object-test"内のオブジェクト一覧を表示]
aws --endpoint-url=https://s3-osakau.oniongw.hpc.cmc.osaka-u.ac.jp s3 ls s3://onion-object-test
その他のS3コマンドについて
S3APIコマンドの利用
SQUIDは全てのS3APIに対応していません。バケットやオブジェクトPUT/GETの他、ACL、バケットポリシー、バージョニングなど一部の機能にのみ対応しています。ONION-objectはほとんどのS3APIに対応しています。対応APIについては以下をご参照ください。
SQUID 対応API ONION-object 対応API
はじめに
SQUIDにアクセスする場合 | --endpoint-url=https://squidgw.hpc.cmc.osaka-u.ac.jp |
---|---|
ONION-objectにアクセスする場合 | --endpoint-url=https://s3-osakau.oniongw.hpc.cmc.osaka-u.ac.jp |
オブジェクトのアップロード
aws --endpoint-url=[endpoint URL] s3api put-object --bucket (バケット名) --key (キー名) --body (アップロードするファイル名)
[ONION-object上のバケット"onion-object-test"内ディレクトリ"dir"に"sample"をアップロード]
aws --endpoint-url=https://s3-osakau.oniongw.hpc.cmc.osaka-u.ac.jp/ s3api put-object --bucket onion-object-test --key dir/sample --body sample
バケットACLの取得
aws --endpoint-url=[endpoint URL] s3api get-bucket-acl --bucket (バケット名)
[ONION-object上のバケット"onion-object-test"のACLを取得]
aws --endpoint-url=https://s3-osakau.oniongw.hpc.cmc.osaka-u.ac.jp/ s3api get-bucket-acl --bucket onion-object-test