全部产品
Search
文档中心

Object Storage Service:Berbagi sumber daya lintas asal (CORS) (Ruby SDK)

更新时间:Nov 30, 2025

Kebijakan asal sama (same-origin policy) pada browser menolak permintaan lintas asal saat Anda bertukar data atau berbagi sumber daya antar domain yang berbeda. Untuk mengatasi hal ini, Anda dapat mengonfigurasi aturan Berbagi Sumber Daya Lintas Asal (Cross-Origin Resource Sharing/CORS) yang mengizinkan akses dari nama domain, metode, dan header permintaan tertentu.

Atur aturan CORS

Kode berikut mengonfigurasi aturan CORS untuk bucket tertentu:

require 'aliyun/oss'

client = Aliyun::OSS::Client.new(
  # Wilayah China (Hangzhou) digunakan sebagai contoh untuk titik akhir. Tentukan titik akhir sesuai wilayah Anda.
  endpoint: 'https://oss-cn-hangzhou.aliyuncs.com',
  # Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah diatur.
  access_key_id: ENV['OSS_ACCESS_KEY_ID'],
  access_key_secret: ENV['OSS_ACCESS_KEY_SECRET']
)

# Tentukan nama bucket, misalnya examplebucket.
bucket = client.get_bucket('examplebucket')
# Atur aturan CORS.
bucket.cors = [
    Aliyun::OSS::CORSRule.new(
      # Tentukan origin yang diizinkan untuk permintaan lintas asal, misalnya http://example.com.
      :allowed_origins => ['http://example.com', 'http://example.net'],
      # Tentukan metode HTTP yang diizinkan untuk permintaan lintas asal, seperti GET, PUT, DELETE, POST, dan HEAD.
      :allowed_methods => ['PUT', 'POST', 'GET'],
      # Tentukan header yang diizinkan dalam permintaan preflight OPTIONS, misalnya x-oss-test.
      :allowed_headers => ['x-oss-test'],
      # Tentukan header respons yang dapat diakses pengguna dari aplikasi.
      :expose_headers => ['x-oss-test1'],
      # Tentukan durasi cache untuk hasil permintaan preflight OPTIONS terhadap sumber daya tertentu. Satuan: detik.
      :max_age_seconds => 100)
]

Ambil aturan CORS

Kode berikut mengambil aturan CORS untuk suatu bucket:

require 'aliyun/oss'

client = Aliyun::OSS::Client.new(
  # Wilayah China (Hangzhou) digunakan sebagai contoh untuk titik akhir. Tentukan titik akhir sesuai wilayah Anda.
  endpoint: 'https://oss-cn-hangzhou.aliyuncs.com',
    # Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah diatur.
  access_key_id: ENV['OSS_ACCESS_KEY_ID'],
  access_key_secret: ENV['OSS_ACCESS_KEY_SECRET']
)

# Tentukan nama bucket, misalnya examplebucket.
bucket = client.get_bucket('examplebucket')
cors = bucket.cors
puts cors.map(&:to_s)

Hapus aturan CORS

Kode berikut menghapus semua aturan CORS untuk bucket tertentu:

require 'aliyun/oss'

client = Aliyun::OSS::Client.new(
  # Wilayah China (Hangzhou) digunakan sebagai contoh untuk titik akhir. Tentukan titik akhir sesuai wilayah Anda.
  endpoint: 'https://oss-cn-hangzhou.aliyuncs.com',
  # Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah diatur.
  access_key_id: ENV['OSS_ACCESS_KEY_ID'],
  access_key_secret: ENV['OSS_ACCESS_KEY_SECRET']
)

# Tentukan nama bucket, misalnya examplebucket.
bucket = client.get_bucket('examplebucket')
bucket.cors = []

Referensi

  • Untuk informasi selengkapnya tentang operasi API yang digunakan untuk mengatur aturan Berbagi Sumber Daya Lintas Asal (CORS), lihat PutBucketCors.

  • Untuk informasi selengkapnya, lihat GetBucketCors.

  • Untuk informasi selengkapnya tentang penghapusan aturan Berbagi Sumber Daya Lintas Asal (CORS), lihat DeleteBucketCors.