オブジェクト・ストレージ・ネームスペースは、
すべてのバケットおよびオブジェクトの最上位のコンテナとして機能します。
アカウント作成時に、各Oracle Cloud Infrastructureテナントには、
システムによって生成された変更不可能な一意のオブジェクト・ストレージ・ネームスペース名が1つ割り当てられます。
オブジェクト・ストレージ・ネームスペースを取得
oci os ns get
バケット作成
https://docs.oracle.com/ja-jp/iaas/Content/Object/home.htm
oci os bucket list \
--compartment-id ocid1.compartment.oc1..000000000000000000000000000000000000000000000000000000000000
oci os bucket create \
--compartment-id ocid1.compartment.oc1..000000000000000000000000000000000000000000000000000000000000 \
--name bucket01 \
--auto-tiering Disabled \
--object-events-enabled false \
--public-access-type NoPublicAccess \
--storage-tier Standard \
--versioning Disabled
oci os bucket create \
--compartment-id ocid1.compartment.oc1..000000000000000000000000000000000000000000000000000000000000 \
--name bucket02
※ Bucket names must be unique within an Object Storage namespace
バケット削除
oci os bucket delete \
--name bucket01 \
--empty \
--force
oci os bucket delete \
--name bucket02 \
--empty \
--force
emptyオプションでオブジェクトも削除してくれる
オブジェクトアップロード
echo test > file01.txt
echo test > file02.txt
echo test > file03.txt
oci os object list \
--bucket-name bucket01
oci os object list \
--bucket-name bucket02
oci os object put \
--bucket-name bucket01 \
--file file01.txt
oci os object put \
--bucket-name bucket02 \
--file file02.txt \
--name dir1/dir2/file02.txt
oci os object put \
--bucket-name bucket02 \
--file file02.txt \
--name dir1/dir2/file03.txt
→フォルダ構造で格納される。
オブジェクトダウンロード
oci os object get \
--bucket-name bucket01 \
--name file01.txt \
--file -
oci os object get \
--bucket-name bucket01 \
--name file01.txt \
--file file11.txt
オブジェクト同期
オブジェクト同期(ダウンロード)
oci os object sync \
--bucket-name bucket02 \
--dest-dir hoge
オブジェクト同期(アップロード)
oci os object sync \
--bucket-name bucket01 \
--src-dir hoge
オブジェクト削除
oci os object delete \
--bucket-name bucket01 \
--name file01.txt \
--force
oci os object delete \
--bucket-name bucket01 \
--name dir1/dir2/file02.txt \
--force
オブジェクトコピー
https://docs.oracle.com/ja-jp/iaas/Content/Object/Tasks/copyingobjects.htm
oci os object list \
--bucket-name bucket01
oci os object list \
--bucket-name bucket02
★ポリシー設定必要(※1)
oci os object copy \
--bucket-name bucket01 \
--destination-bucket bucket02 \
--source-object-name file01.txt
oci os object list \
--bucket-name bucket01
oci os object list \
--bucket-name bucket02
---
(※1)オブジェクトコピーに必要なポリシー作成
oci iam user list
oci iam group list
oci iam group list-users \
--group-id ocid1.group.oc1..000000000000000000000000000000000000000000000000000000000000
oci iam policy list \
--compartment-id ocid1.compartment.oc1..000000000000000000000000000000000000000000000000000000000000
oci iam policy create \
--compartment-id ocid1.compartment.oc1..000000000000000000000000000000000000000000000000000000000000 \
--description polyc01 \
--name polyc01 \
--statements '[
"Allow group Administrators to manage buckets in compartment cmp01",
"Allow group Administrators to manage objects in compartment cmp01",
"Allow service objectstorage-us-ashburn-1 to manage object-family in compartment cmp01",
]'
※付与する下記ポリシー・ステートメントはコンソールから実行して表示されるメッセージから取得
Allow group {group_name} to manage buckets in compartment cmp01
Allow group {group_name} to manage objects in compartment cmp01
Allow service objectstorage-us-ashburn-1 to manage object-family in compartment cmp01
ポリシー削除
oci iam policy list \
--compartment-id ocid1.compartment.oc1..000000000000000000000000000000000000000000000000000000000000 \
--query 'data[?"description"==`'polyc01'`].id | [0]' \
--raw-output
oci iam policy delete \
--policy-id ocid1.policy.oc1..000000000000000000000000000000000000000000000000000000000000 \
--force
---
mkdir -p ikt/dir11 ikt/dir12
echo test > ikt/dir11/file91.txt
echo test > ikt/dir11/file92.txt
echo test > ikt/dir12/file93.txt
一括アップロード
oci os object bulk-upload \
--bucket-name bucket01 \
--src-dir ikt
一括ダウンロード
oci os object bulk-download \
--bucket-name bucket01 \
--dest-dir fuga \
--prefix dir11
一括削除
oci os object bulk-delete \
--bucket-name bucket01 \
--force