Objetos armazenados no Object Storage Service (OSS) contêm uma chave, dados e metadados de objeto. Os metadados descrevem as propriedades de um objeto e incluem cabeçalhos HTTP padrão e metadados definidos pelo usuário. Defina cabeçalhos HTTP padrão para personalizar políticas de requisição HTTP, como a política de cache do objeto ou a política de download forçado. Defina também metadados personalizados para identificar a finalidade ou outras propriedades de um objeto.
Importante
No SDK Ruby, os metadados de objeto são representados por um
Hash. As chaves e os valores são do tipoString.Os metadados de objeto fazem parte dos cabeçalhos HTTP. O protocolo HTTP determina que os cabeçalhos de requisição não podem conter caracteres complexos. Os metadados podem conter apenas caracteres ASCII simples e visíveis, sem quebras de linha.
O tamanho total de todos os metadados não pode exceder 8 KB.
Definir metadados de objeto
Use o código a seguir para definir metadados de objeto ao fazer upload de um objeto.
require 'aliyun/oss'
client = Aliyun::OSS::Client.new(
# Specify the endpoint of the region where the bucket is located. For example, if the bucket is in the China (Hangzhou) region, set the endpoint to https://oss-cn-hangzhou.aliyuncs.com.
endpoint: 'https://oss-cn-hangzhou.aliyuncs.com',
# Obtain access credentials from environment variables. Before you run this sample code, make sure that the OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET environment variables are configured.
access_key_id: ENV['OSS_ACCESS_KEY_ID'],
access_key_secret: ENV['OSS_ACCESS_KEY_SECRET']
)
# Specify the bucket name. Example: examplebucket.
bucket = client.get_bucket('examplebucket')
# Set object metadata during a simple upload.
bucket.put_object(
'my-object-1',
:file => 'local-file',
:metas => {'year' => '2016', 'people' => 'mary'})
# Set object metadata during an append upload.
bucket.append_object(
'my-object-2', 0,
:file => 'local-file',
:metas => {'year' => '2016', 'people' => 'mary'})
# Set object metadata during a resumable upload.
bucket.resumable_upload(
'my-object',
'local-file',
:metas => {'year' => '2016', 'people' => 'mary'})
Modificar metadados de objeto
Use o código a seguir para modificar os metadados de um objeto.
require 'aliyun/oss'
client = Aliyun::OSS::Client.new(
# Specify the endpoint of the region where the bucket is located. For example, if the bucket is in the China (Hangzhou) region, set the endpoint to https://oss-cn-hangzhou.aliyuncs.com.
endpoint: 'https://oss-cn-hangzhou.aliyuncs.com',
# Obtain access credentials from environment variables. Before you run this sample code, make sure that the OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET environment variables are configured.
access_key_id: ENV['OSS_ACCESS_KEY_ID'],
access_key_secret: ENV['OSS_ACCESS_KEY_SECRET']
)
# Specify the bucket name. Example: examplebucket.
bucket = client.get_bucket('examplebucket')
# Modify the object metadata.
bucket.update_object_metas('my-object', {'year' => '2017'})
Referências
Para obter mais informações sobre como definir metadados de objeto durante um upload simples, consulte a operação de API PutObject.
Para obter mais informações sobre como modificar metadados de objeto ao copiar um objeto, consulte a operação de API CopyObject.