本ページではSQUIDやご自身の端末にインストールしたAWS CLI(AWS Command Line Interface)を使って、SQUIDのファイルシステムEXAScalerやONION-objectに対して、S3コマンドやS3APIコマンドでアクセスする方法を解説します。

 

事前準備

アクセスキーの取得

AWS CLIでアクセスしたいS3対応ストレージ(SQUIDのファイルシステムあるいはONION-object)から、アクセスキーおよびシークレットキーを取得してください。
アクセスキー取得(SQUID)
アクセスキー取得(ONION-object)

 

AWS CLIのインストール

以下のページ(AWS公式ドキュメントページ)を元に、AWS CLIをインストールしてください。なお、SQUIDのフロントエンドサーバ上にはすでにインストール済です。
AWS CLIのインストール
 

AWS CLIの初期設定

以下のコマンドを使用してSQUIDおよびOnion-objectにアクセスするための初期設定を行います。SQUIDとONION-object両方を使用する場合は、それぞれ別々の[profile name]を指定し、初期設定を行ってください。

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コマンドの利用

AWS CLIのS3コマンドを使用して、バケットやオブジェクトを操作します。
S3APIコマンドと比較するとコマンドが簡単です。バケットの作成/削除、オブジェクトの移動/削除といった単純な操作にご利用ください。
 

はじめに

AWS CLIは、Amazonのクラウド資源に対してアクセスするためのコマンドであるため、SQUIDやONION-objectにアクセスする場合は、都度「--endpoint-url」オプションの指定が必要になります。また、AWS_DEFAULT_PROFILEを設定していない場合は「--profile」も指定してください。指定しない場合は、正しく動作しませんのでご注意ください。

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 コマンドを使ってバケットを作成いただくことを推奨します。
 

データコピー

以下のコマンドで、ローカルからSQUID/ONION-objectに対してファイルをコピーします。

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オプションを使用することで、指定したディレクトリ内の全てのファイルに対してコマンドを実行します。

 

バケットおよびオブジェクトの一覧表示

以下のコマンドで、SQUID/ONION-object上のバケットやオブジェクト一覧を表示します。

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コマンドについて

以下のAWS公式WEBページをご参照ください。
AWS CLIでの高レベル(S3)コマンドの使用
 

S3APIコマンドの利用

AWS CLIのS3APIコマンドを使用して、バケットやオブジェクトを操作します。
SQUIDは全てのS3APIに対応していません。バケットやオブジェクトPUT/GETの他、ACL、バケットポリシー、バージョニングなど一部の機能にのみ対応しています。ONION-objectはほとんどのS3APIに対応しています。対応APIについては以下をご参照ください。
SQUID 対応API  ONION-object 対応API

 

はじめに

AWS CLIは、Amazonのクラウド資源に対してアクセスするためのコマンドであるため、SQUIDやONION-objectにアクセスする場合は、都度「--endpoint-url」オプションの指定が必要になります。また、AWS_DEFAULT_PROFILEを設定していない場合は「--profile」も指定してください。指定しない場合は、正しく動作しませんのでご注意ください。

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

 

オブジェクトのアップロード

S3API PUT-Objectで任意のバケットにデータをアップロードします。

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の取得

S3API Get-Bucket-ACLでバケットのAccess Control List(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

 

その他のS3APIコマンドについて

以下のAWS公式WEBページをご参照ください。
AWS CLI でのAPIレベル(s3api)コマンドの使用