ConoHa VPS(Ver.3.0)のオブジェクトストレージを、S3のAPIを介して操作する方法を記載します。
S3のAPIと互換性を持たせる事によりバックエンドを気にせずに周辺ツールを使用する事ができます。
本ドキュメントではDockerを利用したS3Proxyの使い方となります。
Step 1: S3Proxy準備
ConoHa VPS(Ver.3.0)のDockerテンプレートからS3Proxy 2.6.0のDockerイメージのダウンロードおよび起動させる手順例です。
S3Proxyの使用法は、提供元情報を参照してください。
Dockerイメージを使用して、コンテナを起動する
ConoHa VPS(Ver.3.0)の各種API情報はコントロールパネルにログインし、APIメニューを参照してください。
$ docker run -itd --rm -p 8081:80 \
-e S3PROXY_AUTHORIZATION=aws-v2-or-v4 \
-e S3PROXY_IDENTITY=access_key \
-e S3PROXY_CREDENTIAL=secret_access_key \
-e S3PROXY_IGNORE_UNKNOWN_HEADERS="true" \
-e JCLOUDS_PROVIDER=openstack-swift \
-e JCLOUDS_ENDPOINT={Identity Serviceのエンドポイント} \
-e JCLOUDS_IDENTITY="{テナント名}:{APIユーザー名}" \
-e JCLOUDS_CREDENTIAL="{APIパスワード}" \
-e JCLOUDS_REGIONS=c3j1 \
-e JCLOUDS_REGION=c3j1 \
-e JCLOUDS_KEYSTONE_VERSION=3 \
-e JCLOUDS_KEYSTONE_SCOPE=project:{テナント名} \
--name s3proxy \
andrewgaul/s3proxy:2.6.0
各環境変数の設定
項目 | 値 | 説明 |
---|---|---|
S3PROXY_AUTHORIZATION | aws-v2-or-v4 none |
S3Proxyで認証するかしないか |
S3PROXY_IDENTITY | access_key | 任意のaccess_keyを設定可能 |
S3PROXY_CREDENTIAL | secret_access_key | 任意のsecret_access_keyを設定可能 |
S3PROXY_IGNORE_UNKNOWN_HEADERS | true false |
不明なヘッダーを無視するかしないか |
JCLOUDS_PROVIDER | openstack-swift | バックエンドに何を使うか |
JCLOUDS_ENDPOINT | Identity Serviceのエンドポイント | |
JCLOUDS_IDENTITY | テナント名:APIユーザー名 | |
JCLOUDS_CREDENTIAL | APIパスワード | |
JCLOUDS_REGIONS | c3j1 | リージョン |
JCLOUDS_REGION | c3j1 | 上と同じ値を設定 |
JCLOUDS_KEYSTONE_VERSION | 3 | |
JCLOUDS_KEYSTONE_SCOPE | project:テナント名 |
Dockerコンテナの一覧確認
docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5fcd2e4d595f andrewgaul/s3proxy:2.6.0 "/opt/s3proxy/run-do…" 10 minutes ago Up 10 minutes 443/tcp, 0.0.0.0:8081->80/tcp, [::]:8081->80/tcp s3proxy
Step 2: AWS CLIのインストール
apt-get update
apt install python3-pip
pip install awscli
Step 3: 各種操作
AWS CLIの認証設定
Step 1で設定したaccess_keyとsecret_access_keyを設定する。
$ aws configure
AWS Access Key ID [None]: access_key
AWS Secret Access Key [None]: secret_access_key
Default region name [None]:
Default output format [None]:
バケット(オブジェクトストレージのコンテナ)一覧
$ aws s3 ls --endpoint-url http://localhost:8081
1970-01-01 09:00:00 conoha_container
バケット(オブジェクトストレージのコンテナ)作成
ここでは「conoha_container_2」というバケット(オブジェクトストレージのコンテナ)を作成。
$ aws s3 mb s3://conoha_container_2 --endpoint-url http://localhost:8081
make_bucket: conoha_container_2
$ aws s3 ls --endpoint-url http://localhost:8081
1970-01-01 09:00:00 conoha_container
1970-01-01 09:00:00 conoha_container_2
オブジェクト一覧
ここでは「conoha_container」というバケット(オブジェクトストレージのコンテナ)内のオブジェクト一覧。
$ aws s3 ls s3://conoha_container --endpoint-url http://localhost:8081
2025-02-13 13:50:26 2073 testfile
ローカルファイルをバケットにコピー
ここではカレントディレクトリにあるファイル「test」を「conoha_container_2」というバケット(オブジェクトストレージのコンテナ)にコピーします。
aws s3 cp test s3://conoha_container_2 --endpoint-url http://localhost:8081
upload: ./test to s3://conoha_container_2/test