Todos los productos
Search
Centro de documentos

Object Storage Service:Cargas por anexión (SDK de Ruby)

Última actualización: Sep 03, 2026

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_object crea 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

oss:PutObject

Puede invocar esta operación para cargar un objeto anexándolo a un objeto existente.

oss:PutObjectTagging

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.