サードパーティツールの使用ガイド

この文書ではサードパーティツールでNHN Cloudオブジェクトストレージサービスを使用する方法を説明します。

Cyberduck

Cyberduckはオープンソースのクラウドストレージブラウザです。

Cyberduckのインストール

Cyberduckダウンロードページから使用しているOSに合ったインストールファイルをダウンロードしてインストールします。

オブジェクトストレージの接続設定

オブジェクトストレージに接続するには、接続情報を保存するブックマークを作成する必要があります。ブラウザ上部の新しい接続をクリックした後、ドロップダウンメニューからOpenStack Swift(Keystone 2.0)を選択します。必要な情報を入力した後、接続をクリックすると新しいブックマークが作成されます。

項目 説明
別名 ブックマークのエイリアスです。好きな値を自由に設定できます。
サーバー アイデンティティサービス(identity)のアドレスです。オブジェクトストレージサービスページの API Endpoint設定 ダイアログボックスで確認できます。
Tenant ID:Access Key Tenant ID:ユーザーのプロジェクトIDです。Webコンソールの プロジェクト管理 > プロジェクト基本情報で確認できます。
Access ID: NHN Cloud会員ID(メール形式)またはIAMメンバーIDを入力します。
Secret Key オブジェクトストレージサービスページの API Endpoint設定 ダイアログボックスで設定したAPIパスワードを入力します。

[参考] APIパスワードの設定方法はAPIガイドのAPIパスワード設定項目を参照してください。

オブジェクトストレージの接続

接続するブックマークをダブルクリックしてオブジェクトストレージに接続します。

コンテナ/オブジェクトの照会

オブジェクトストレージに接続すると、すべてのリージョンのコンテナリストがブラウザに表示されます。コンテナをダブルクリックしてコンテナのオブジェクトリストを照会できます。

[参考] 異なるリージョンに同じ名前のコンテナがある場合、同じ名前のコンテナが複数表示されます。 メニューから表示 > 列 > 地域を選択すると、列項目にリージョンを表示できます。

コンテナの作成

コンテナリストの空きスペースで右クリックし、新規フォルダ...を選択して新しいコンテナを作成できます。コンテナの名前とリージョンを入力し、作成をクリックすると、コンテナが作成されます。

[参考] コンテナリストの空きスペースで右クリックし、再表示を選択すると、コンテナリストを更新できます。

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

コンテナを選択した後、ブラウザ上部のアクション > アップロード...をクリックするか、オブジェクトリストで右クリックした後、アップロード。..をクリックしてファイルを選択してアップロードします。

[参考] Cyberduckでフォルダをアップロードまたは作成すると、フォルダ名と同じ0バイトのオブジェクトがもう一つ作成されます。これはコンソールまたはオブジェクトストレージAPIで確認でき、削除しても構いません。

オブジェクトのダウンロード

ダウンロードするオブジェクトを選択した後、右クリックしてダウンロードを選択します。ドラッグ&ドロップでオブジェクトをダウンロードすることもできます。

[参考] オブジェクトをダウンロードすると、基本的にローカルのダウンロードフォルダに保存されます。右クリックして指定した場所にダウンロードを選択すると、指定したパスにダウンロードできます。 オブジェクトをアップロードまたはダウンロードすると、転送ウィンドウがポップアップして進行状況を把握できます。

コンテナの削除

削除するコンテナを選択し、右クリックして削除を選択します。

[注意] コンテナを削除すると、、コンテナ内のオブジェクトも全て削除されるので注意が必要です。

オブジェクトの削除

削除するオブジェクトを選択し、右クリックして削除を選択します。

フォルダ同期

ローカルフォルダをコンテナまたはフォルダと同期できます。コンテナまたはフォルダを選択した後、右クリックして同期を選択します。 フォルダ同期は、ダウンロード、アップロード、ミラーリングの3つの方法を提供します。

ダウンロード

オブジェクトストレージで変更または追加されたオブジェクトをローカルにダウンロードします。

アップロード

ローカルで変更または追加されたファイルをオブジェクトストレージにアップロードします。

ミラー

ローカルとオブジェクトストレージを比較して変更または不足しているファイルまたはオブジェクトをアップロードまたはダウンロードします。

[参考] 同期の詳細についてはCyberduckのSynchronize Folders文書を参照してください。

Terraform

Terraformはインフラを簡単に構築して安全に変更し、効率的にインフラの形状を管理できるオープンソースツールです。基本的な使い方はユーザーガイド > Compute > Instance > Terraform使用ガイドを参照してください。

リソースの依存関係

一般的に各リソースは独立していますが、他の特定のリソースに依存関係を持つこともできます。リソースのラベルを通じて他のリソースの情報を参照すると、Terraformは自動的に依存関係を設定します。 例えば、conatiner1コンテナに含まれるobject1オブジェクトは次のように表現できます。

# コンテナリソース
resource "nhncloud_objectstorage_container_v1" "container_1" {
  name = "container1"
}
# オブジェクトリソース
resource "nhncloud_objectstorage_object_v1" "object_1" {
  container_name = nhncloud_objectstorage_container_v1.container_1.name
  name           = "object1"
  source       = "/tmp/dummy"
}

[参考] 明示的なリソースの依存関係指定方法はTerraformのResource dependencies文書を参照してください。

Resources - Object Storage

コンテナの作成

# 基本コンテナの作成
resource "nhncloud_objectstorage_container_v1" "container_1" {
  region = "KR1"
  name   = "tf-test-container-1"
}
# オブジェクトバージョン管理コンテナの作成
resource "nhncloud_objectstorage_container_v1" "container_2" {
  region = "KR1"
  name   = "tf-test-container-2"
  versioning_legacy {
    type     = "history"
    location = resource.nhncloud_objectstorage_container_v1.container_1.name
  }
}
# パブリックコンテナの作成
resource "nhncloud_objectstorage_container_v1" "container_3" {
  region = "KR1"
  name   = "tf-test-container-3"
  container_read = ".r:*,.rlistings"
}
名前 タイプ 必須 説明
region String NHN Cloudリソースを管理するリージョン
name String O コンテナ名
container_read String コンテナの読み取りに対する役割ベースのアクセスルールを設定
container_write String コンテナの書き込みに対するロールベースアクセスルール
force_destroy Boolean コンテナを強制的に削除するかどうか、 trueまたはfalse
一緒に削除されたオブジェクトは復元できません。
versioning_legacy Object オブジェクトバージョン管理設定
versioning_legacy.type String historyに指定
versioning_legacy.location String オブジェクトの旧バージョンを保管するコンテナ名

オブジェクトの作成

# オブジェクトの作成
resource "nhncloud_objectstorage_object_v1" "object_1" {
  region         = "KR1"
  container_name = nhncloud_objectstorage_container_v1.container_1.name
  name           = "test/test1.json"
  content_type = "application/json"
  content      = <<JSON
               {
                 "key" : "value"
               }
JSON
}
# ファイルアップロード
resource "nhncloud_objectstorage_object_v1" "object_2" {
  region         = "KR2"
  container_name = nhncloud_objectstorage_container_v1.container_1.name
  name           = "test/test2.json"
  source       = "./test2.txt"
}
名前 タイプ 必須 説明
name String O オブジェクト名
container_name String O コンテナ名
source String O アップロードするローカルファイルシステム上のファイルパス
content, copy_from または object_manifestと一緒に使用できません。
source, content, copy_from または object_manifestのいずれかを必ず指定する必要があります。
content String O 作成するオブジェクトの内容
source, copy_from または object_manifestと一緒に使用できません。
copy_from String O コピーする原本オブジェクト、 {コンテナ}/{オブジェクト}
source, content または object_manifestと一緒に使用できません。
object_manifest String O 分割したセグメントオブジェクトをアップロードしたパス、 {Segment-Container}/{Segment-Object}/
source, content または copy_fromと一緒に使用できません。
content_disposition String Content-Disposition ヘッダを指定
content_encoding String Content-Encoding ヘッダを指定
content_type String Content-Type ヘッダを指定
delete_after Integer オブジェクト有効時間、 UNIX時間(秒)
delete_at String オブジェクトの有効期限、 UNIX時間(秒), RFC3339フォーマット文字列
detect_content_type Boolean コンテンツタイプを推論するかどうか
設定するとcontent_typeが無視されます。

参考サイト

Cyberduck - https://docs.cyberduck.io/cyberduck/ Terraform - https://www.terraform.io/ Terraform Registry - https://registry.terraform.io/

TOP