Todos os produtos
Search
Central de documentação

Object Storage Service:Compartilhamento de recursos de origem cruzada (Ruby SDK)

Última atualização: Jul 03, 2026

Devido à política de mesma origem dos navegadores, solicitações de origem cruzada podem ser rejeitadas durante a troca de dados ou o compartilhamento de recursos entre domínios diferentes. Para resolver esse problema, configure regras de compartilhamento de recursos de origem cruzada (CORS). Nessas regras, especifique os domínios de onde as solicitações podem ser enviadas, os métodos permitidos para envio e os cabeçalhos autorizados.

Defina regras de CORS

O código a seguir define regras de CORS para um bucket específico:

require 'aliyun/oss'

client = Aliyun::OSS::Client.new(
  # The China (Hangzhou) region is used as an example for the endpoint. Specify the endpoint based on your region.
  endpoint: 'https://oss-cn-hangzhou.aliyuncs.com',
  # Obtain access credentials from environment variables. Before running this 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, such as examplebucket.
bucket = client.get_bucket('examplebucket')
# Set the CORS rules.
bucket.cors = [
    Aliyun::OSS::CORSRule.new(
      # Specify the allowed origins for cross-origin requests, such as http://example.com.
      :allowed_origins => ['http://example.com', 'http://example.net'],
      # Specify the allowed HTTP methods for cross-origin requests, such as GET, PUT, DELETE, POST, and HEAD.
      :allowed_methods => ['PUT', 'POST', 'GET'],
      # Specify the allowed headers in OPTIONS preflight requests, such as x-oss-test.
      :allowed_headers => ['x-oss-test'],
      # Specify the response headers that users can access from applications.
      :expose_headers => ['x-oss-test1'],
      # Specify the cache duration for the results of an OPTIONS preflight request for a specific resource. Unit: seconds.
      :max_age_seconds => 100)
]

Obter regras de CORS

O código a seguir recupera as regras de CORS de um bucket:

require 'aliyun/oss'

client = Aliyun::OSS::Client.new(
  # The China (Hangzhou) region is used as an example for the endpoint. Specify the endpoint based on your region.
  endpoint: 'https://oss-cn-hangzhou.aliyuncs.com',
    # Obtain access credentials from environment variables. Before running this 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, such as examplebucket.
bucket = client.get_bucket('examplebucket')
cors = bucket.cors
puts cors.map(&:to_s)

Exclua regras de CORS

O código a seguir exclui todas as regras de CORS de um bucket específico:

require 'aliyun/oss'

client = Aliyun::OSS::Client.new(
  # The China (Hangzhou) region is used as an example for the endpoint. Specify the endpoint based on your region.
  endpoint: 'https://oss-cn-hangzhou.aliyuncs.com',
  # Obtain access credentials from environment variables. Before running this 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, such as examplebucket.
bucket = client.get_bucket('examplebucket')
bucket.cors = []

Referências

  • Para obter mais informações sobre a operação da API usada para definir regras de compartilhamento de recursos de origem cruzada (CORS), consulte PutBucketCors.

  • Para mais informações, consulte GetBucketCors.

  • Para obter mais informações sobre como excluir regras de compartilhamento de recursos de origem cruzada (CORS), consulte DeleteBucketCors.