Todos os produtos
Search
Central de documentação

Object Storage Service:Cross-origin resource sharing (Ruby SDK)

Última atualização: Sep 22, 2026

Devido à política de mesma origem, os navegadores podem rejeitar solicitações de origem cruzada 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 o 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)
]

Obtenha regras de CORS

O código a seguir obtém 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 de API usada para definir regras de compartilhamento de recursos de origem cruzada (CORS), consulte PutBucketCors.

  • Para mais detalhes, consulte GetBucketCors.

  • Para saber mais sobre como excluir regras de compartilhamento de recursos de origem cruzada (CORS), consulte DeleteBucketCors.