7
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

株式会社デジタルクエスト エンジニアAdvent Calendar 2016

Day 7

IDCFCloud オブジェクトストレージへのファイルアップロード For AWS CLI or SDK

Posted at

はじめに

IDCフロンティア社提供の分散型クラウドストレージ、
オブジェクトストレージを利用する機会がありました。

Amazon S3との互換性が高いとの事で、
S3的な方法でオブジェクトのアップロード出来るか試してみたのでメモメモ

事前準備

  1. IDCF Cloudのコンソールからオブジェクトストレージで使うAPIユーザーを作成
  2. エンドポイントAPI KeySecret Keyが作られるのでメモメモ
  3. 作成したAPIユーザーに紐付くバケットを作成しておく

AWS CLI編

  • AWS CLI本体はインストールされている前提
  • ちなみに環境はMacです

これは非常に簡単

まずは認証情報を作成

$ aws configure
AWS Access Key ID [*****]:       # `API Key`を入力
AWS Secret Access Key [*****]:   # `Secret Key`を入力
Default region name [*****]:     # 適当なregionを指定
Default output format [*****]:   # 適当なフォーマットを指定

早速アップロード

$ aws --endpoint-url [エンドポイント] s3 \
cp [アップロード対象ファイルのパス] \
s3://[バケット]/[アップロード先となる対象ディレクトリのパス]

これでOK
単純にAWS CLIcp時にオプションで--endpoint-urlを指定するだけで、後は基本的に同じ
※オプションも同じ様に利用できます(--recursiveとか--aclとかとか)

AWS SDK for JavaScript編

これは結論から言うと現時点では出来なかった...orz
ファイルアップロード時に
No 'Access-Control-Allow-Origin'
とインスペクターにエラーが表示

AWS S3ならCORS設定を追加・変更し、クロスドメイン制約を回避すれば良いのだが、
残念ながらCORSは未対応の様子でした:tired_face:

AWS SDK for PHP編

最新バージョン3での署名バージョン4には非対応のため、
AWS SDK for PHP 2なら可能

まとめ

  • AWS CLIでは問題なくアップロード可能
  • JavaScriptでの直接アップロードは出来ないので、ajaxでサーバ経由して等、一手間必要
  • 今回はAWS SDK for PHP 2でも特に問題は無かったので、そこまで手間ではなかった
Created by 株式会社デジタルクエスト 杉田 允
7
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?