Les objets stockés dans Object Storage Service (OSS) se composent d'une clé, de données et de métadonnées. Les métadonnées décrivent les propriétés d'un objet et incluent des en-têtes HTTP standard ainsi que des métadonnées définies par l'utilisateur. Configurez des en-têtes HTTP standard pour personnaliser les politiques de requête HTTP, telles que la politique de mise en cache ou le téléchargement forcé. Définissez également des métadonnées personnalisées afin d'identifier la finalité ou d'autres caractéristiques d'un objet.
Important
Dans le kit de développement logiciel (SDK) Ruby, les métadonnées d'objet sont représentées par un
Hash. Les clés et les valeurs sont de typeString.Les métadonnées d'objet figurent dans les en-têtes HTTP. Le protocole HTTP impose que les en-têtes de requête ne contiennent pas de caractères complexes. Les métadonnées doivent se limiter aux caractères ASCII simples et visibles, sans saut de ligne.
La taille totale de toutes les métadonnées ne doit pas dépasser 8 Ko.
Définir les métadonnées d'objet
Utilisez le code suivant pour définir les métadonnées d'objet lors du chargement d'un objet.
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'})
Modifier les métadonnées d'objet
Utilisez le code ci-dessous pour modifier les métadonnées d'objet.
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'})
Références
Pour plus d'informations sur la définition des métadonnées d'objet lors d'un chargement simple, consultez l'opération d'API PutObject.
Pour en savoir plus sur la modification des métadonnées d'objet lors de la copie d'un objet, reportez-vous à l'opération d'API CopyObject.