Puede invocar la operación AppendObject para agregar contenido a objetos anexables existentes.
Notas
En este tema se utiliza el endpoint público de la región China (Hangzhou). Para acceder a OSS desde otros servicios de Alibaba Cloud en la misma región, use un endpoint interno. Para obtener más información sobre las regiones y los endpoints compatibles, consulte Regions and endpoints.
Este tema muestra cómo crear una instancia de OSSClient con un endpoint de OSS. Para configuraciones alternativas, como el uso de un dominio personalizado o la autenticación con credenciales de Security Token Service (STS), consulte Client configuration.
Si el archivo no existe, el método
Bucket#append_objectcrea un objeto anexable.-
Si el archivo ya existe:
Si el archivo es un objeto anexable y la posición de anexión especificada coincide con la longitud actual del archivo, el contenido se agrega al final del archivo.
Si el archivo es un objeto anexable pero la posición de anexión especificada no coincide con la longitud actual del archivo, se genera una excepción PositionNotEqualToLength.
Si el archivo no es un objeto anexable, por ejemplo, un objeto normal cargado mediante una carga simple, se genera una excepción ObjectNotAppendable.
Permisos
De forma predeterminada, una cuenta de Alibaba Cloud tiene permisos completos. Los usuarios de RAM o los roles de RAM bajo una cuenta de Alibaba Cloud no tienen ningún permiso de forma predeterminada. La cuenta de Alibaba Cloud o el administrador de la cuenta deben otorgar los permisos de operación mediante RAM policies o Bucket Policy.
|
API |
Acción |
Descripción |
|
AppendObject |
|
Puede invocar esta operación para cargar un objeto anexándolo a un objeto existente. |
|
|
Al cargar un objeto anexándolo a un objeto existente, este permiso es obligatorio si especifica etiquetas de objeto mediante x-oss-tagging. |
Código de ejemplo
A continuación se muestra cómo realizar una carga por anexión.
require 'aliyun/oss'
client = Aliyun::OSS::Client.new(
# The China (Hangzhou) region is used as an example. Specify the actual region.
endpoint: 'https://oss-cn-hangzhou.aliyuncs.com',
# Obtain access credentials from environment variables. Before you run the sample code, make sure that the OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET environment variables are set.
access_key_id: ENV['OSS_ACCESS_KEY_ID'],
access_key_secret: ENV['OSS_ACCESS_KEY_SECRET']
)
# Specify the bucket name, for example, examplebucket.
bucket = client.get_bucket('examplebucket')
# Specify the full path of the object. The full path cannot contain the bucket name.
bucket.append_object('my-object', 0)
# Append content to the end of the file.
next_pos = bucket.append_object('my-object', 0) do |stream|
100.times { |i| stream << i.to_s }
end
next_pos = bucket.append_object('my-object', next_pos, :file => 'local-file-1')
next_pos = bucket.append_object('my-object', next_pos, :file => 'local-file-2')
Referencias
Para obtener más información sobre la operación de API AppendObject, consulte AppendObject.