Object Storage Service (OSS) に保存されているオブジェクトは、キー、データ、およびメタデータで構成されます。 オブジェクトメタデータは、オブジェクト属性を記述する。 オブジェクトメタデータには、標準HTTPヘッダーとユーザーメタデータが含まれます。 標準のHTTPヘッダーを設定することで、オブジェクトキャッシュポリシーや強制オブジェクトダウンロードポリシーなどのカスタムHTTPリクエストポリシーを作成できます。 オブジェクトのユーザーメタデータを設定して、オブジェクトの目的または属性を識別できます。
使用上の注意
OSS SDK for Rubyでは、オブジェクトのメタデータは
ハッシュ
で表されます。 その他のキーと値はString
型です。オブジェクトメタデータは、リクエストとレスポンスのHTTPヘッダーとして転送されます。 HTTPプロトコルによると、HTTPヘッダーに複雑な文字を含めることはできません。 したがって、オブジェクトメタデータには表示可能なASCII文字のみを含めることができます。 メタデータに改行を含めることはできません。
オブジェクトのメタデータのサイズは8 KBを超えることはできません。
オブジェクトメタデータの設定
次のコードでは、オブジェクトをアップロードするときにオブジェクトメタデータを設定する方法の例を示します。
'aliyun/oss 'が必要です
client = Aliyun::OSS::Client.new (
# バケットが配置されているリージョンのエンドポイントを指定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントをhttps://oss-cn-hangzhou.aliyuncs.comに設定します。
エンドポイント: 'https:// oss-cn-hangzhou.aliyuncs.com '、
# 環境変数からアクセス資格情報を取得します。 コードを実行する前に、OSS_ACCESS_KEY_IDおよびOSS_ACCESS_KEY_SECRET環境変数が設定されていることを確認してください。
access_key_id: ENV['OSS_ACCESS_KEY_ID '] 、
access_key_secret: ENV['OSS_ACCESS_KEY_SECRET ']
)
# バケットの名前を指定します。 例: examplebucket.
bucket = client.get_bucket('examplebucket')
# 単純なアップロード時にオブジェクトメタデータを設定します。
bucket.put_object (
'my-object-1 '、
: file => 'local-file' 、
: metas => {'year' => '2016', 'people' => 'mary'})
# 追加アップロード時にオブジェクトメタデータを設定します。
bucket.append_object (
'my-object-2 '、0、
: file => 'local-file' 、
: metas => {'year' => '2016', 'people' => 'mary'})
# 再開可能なアップロード中にオブジェクトメタデータを設定します。
bucket.resumable_upload (
「私のオブジェクト」、
「ローカルファイル」、
: metas => {'year' => '2016', 'people' => 'mary'})
オブジェクトメタデータの変更
次のコードでは、オブジェクトメタデータを変更する方法の例を示します。
'aliyun/oss 'が必要です
client = Aliyun::OSS::Client.new (
# バケットが配置されているリージョンのエンドポイントを指定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントをhttps://oss-cn-hangzhou.aliyuncs.comに設定します。
エンドポイント: 'https:// oss-cn-hangzhou.aliyuncs.com '、
# 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、OSS_ACCESS_KEY_IDおよびOSS_ACCESS_KEY_SECRET環境変数が設定されていることを確認してください。
access_key_id: ENV['OSS_ACCESS_KEY_ID '] 、
access_key_secret: ENV['OSS_ACCESS_KEY_SECRET ']
)
# バケットの名前を指定します。 例: examplebucket.
bucket = client.get_bucket('examplebucket')
# オブジェクトメタデータを変更します。
bucket.update_object_metas('my-object', {'year' => '2017'})
参考資料
単純なアップロード中にオブジェクトメタデータを設定するために呼び出すことができるAPI操作の詳細については、「PutObject」をご参照ください。
オブジェクトをコピーするときにオブジェクトメタデータを変更するために呼び出すことができるAPI操作の詳細については、「CopyObject」をご参照ください。