ibmcloudコマンドでIBM Cloud Object Storage(ICOS)にファイルをアップロードする方法です。
ibmcloudコマンドの概要、セットアップについては下記を参照下さい。
参考リソース:これからIBM Cloud CLIをインストールする方へ
使用した環境
- macOS Mojave 10.14.6
- ibmcloud CLI
$ ibmcloud --version
ibmcloud version 0.22.1+66bb68d-2020-02-28T07:50:09+00:00
ログイン(ワンタイムパスワード)
セットアップの参照リソース内でログイン方法までレクチャーされているかと思いますが、ここではおまけでワンタイムパスワードでのログイン方法をお伝えしておきます。
IBM Cloud コンソール(Web)にログインして、右上にあるユーザー情報のアイコンをクリックしてみて下さい。
下記のように表示されるはずです。
「CLIとAPIにログイン」というリンクがあるかと思いますので、それをクリックすると、
という画面が出てきますので「IBM Cloud CLI」の部分をコピーして頂いて、お使いのターミナルソフトの入力欄に貼り付けて、Enterキーを押下します。
$ ibmcloud login -a https://cloud.ibm.com -u passcode -p one-time-pass
API エンドポイント: https://cloud.ibm.com
認証中です...
OK
ターゲットのアカウント TAKANOBU KAWAGUCHI's Account (xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)
地域を選択します (または Enter キーを押してスキップします):
1. au-syd
2. in-che
3. jp-osa
4. jp-tok
5. kr-seo
6. eu-de
7. eu-gb
8. us-south
9. us-south-test
10. us-east
数値を入力してください> 4
ターゲットの地域 jp-tok
API エンドポイント: https://cloud.ibm.com
地域: jp-tok
ユーザー: your@userid.org
アカウント: TAKANOBU KAWAGUCHI's Account (xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)
リソース・グループ: リソース・グループがターゲットになっていません。'ibmcloud target -g RESOURCE_GROUP' を使用してください
CF API エンドポイント:
組織:
スペース:
ヒント: Cloud Foundry アプリケーションおよびサービスを管理している場合
- 'ibmcloud target --cf' を使用して Cloud Foundry 組織/スペースを対話式にターゲットにするか、'ibmcloud target --cf-api ENDPOINT -o ORG -s SPACE' を使用して組織/スペースをターゲットにします。
- 現行の IBM Cloud CLI コンテキストを使用して Cloud Foundry CLI を実行する場合は、'ibmcloud cf' を使用します。
ICOSの情報確認
IBM Cloud コンソール(Web)にログインしてICOSのサービス資格情報を確認します。
サービス資格情報はICOSに作成したバケットの資格情報の中にあります。
// バケットのリストを取得
// 例:ibmcloud cos list-buckets --ibm-service-instance-id <resource_instance_id>
$ ibmcloud cos list-buckets --ibm-service-instance-id xxxxxxxxxxxxxxx
OK
4 アカウントにバケットが見つかりました:
名前 作成日
test-development Jan 14, 2020 at 03:53:38
test-transfer Jan 23, 2020 at 04:13:16
test-archive Jan 22, 2020 at 02:23:31
test-bucket Feb 06, 2020 at 05:37:37
$
// バケットの中身を確認
// 例:ibmcloud cos list-objects --bucket <bucket-name>
$ ibmcloud cos list-objects --bucket test-bucket
OK
見つかりました バケットに 1 個のオブジェクトがあります 'test-bucket':
名前 最終変更日時 オブジェクト・サイズ
test.txt Feb 28, 2020 at 02:27:12 14 B
ICOSにファイルをアップロード
以下のコマンドで対象のバケットにファイルをアップロードします。
// バケットにファイルをアップロード
// 例:ibmcloud cos put-object --bucket <bucket-name> --key <filename> --body <filefullpath>
$ ibmcloud cos put-object --bucket test-bucket --key test2.txt --body /tmp/test2.txt
OK
オブジェクト 'test2.txt' がバケット 'test-bucket' に正常にアップロードされました。
アップロードが正常に終わりましたので、念のために確認します。
// 正常にアップロードされたことを確認
$ ibmcloud cos list-objects --bucket test-bucket
OK
見つかりました 2 バケットにオブジェクトがあります 'test-bucket':
名前 最終変更日時 オブジェクト・サイズ
test.txt Feb 28, 2020 at 02:27:12 14 B
test2.txt Mar 01, 2020 at 21:21:20 17 B
test2.txtが正常にアップロードされていました。
ICOSのファイルを削除
次にファイルの削除です。コマンドは以下の通りです。
// バケットの状況を確認
$ ibmcloud cos list-objects --bucket test-bucket
OK
見つかりました 2 バケットにオブジェクトがあります 'test-bucket':
名前 最終変更日時 オブジェクト・サイズ
test.txt Feb 28, 2020 at 02:27:12 14 B
test2.txt Mar 01, 2020 at 21:21:20 17 B
// ファイル:test2.txtの削除を実施
// 例:ibmcloud cos delete-object --bucket <bucket-name> --key <filename>
$ ibmcloud cos delete-object --bucket test-bucket --key test2.txt
警告: これによりオブジェクト 'test2.txt' がバケット 'test-bucket' から完全に削除されます。
続行してよろしいですか? [y/N]> y
OK
'test2.txt' のバケット 'test-bucket' からの削除が正常に実行されました。
// 削除された状況を確認
$ ibmcloud cos list-objects --bucket test-bucket
OK
見つかりました バケットに 1 個のオブジェクトがあります 'test-bucket':
名前 最終変更日時 オブジェクト・サイズ
test.txt Feb 28, 2020 at 02:27:12 14 B
簡単にはなりますが、ibmcloudコマンドを使用したICOSの操作は以上です。
他のコマンドについては以下を参照下さい。
参考リソース:Cloud Object Storage - IBM Cloud CLIの利用