すべてのプロダクト
Search
ドキュメントセンター

Object Storage Service:Rubyを使用してオブジェクトメタデータを管理する

最終更新日:Feb 23, 2024

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」をご参照ください。