Anda dapat menggunakan kit pengembangan perangkat lunak (SDK) Ruby untuk mengonfigurasi aturan akses di Object Storage Service (OSS) berdasarkan header permintaan Referer. Aturan tersebut mencakup daftar putih Referer, daftar hitam Referer, serta penentuan apakah header Referer kosong diperbolehkan. Konfigurasi ini mencegah situs web lain melakukan hotlinking terhadap file OSS Anda dan membantu menghindari biaya traffic yang tidak perlu.
Perhatian
Sebelum mengonfigurasi perlindungan hotlink, pastikan Anda memahami fitur ini terlebih dahulu. Untuk informasi selengkapnya, lihat Perlindungan hotlink.
Pada topik ini, titik akhir publik wilayah China (Hangzhou) digunakan. Jika Anda ingin mengakses OSS dari layanan Alibaba Cloud lainnya yang berada di wilayah yang sama dengan OSS, gunakan titik akhir internal. Untuk informasi selengkapnya mengenai wilayah dan titik akhir OSS, lihat Wilayah dan titik akhir.
Dalam topik ini, instans OSSClient dibuat dengan menggunakan Titik akhir OSS. Jika Anda ingin membuat instans OSSClient dengan menggunakan nama domain kustom atau Layanan Token Keamanan (STS), lihat Initialization (Ruby SDK).
Untuk mengonfigurasi atau menghapus perlindungan hotlink, Anda harus memiliki izin
oss:PutBucketReferer. Untuk menanyakan konfigurasi perlindungan hotlink, Anda harus memiliki izinoss:GetBucketReferer. Untuk informasi selengkapnya, lihat Lampirkan kebijakan kustom ke RAM user.
Atur perlindungan hotlink
Kode berikut menunjukkan cara mengatur perlindungan hotlink:
require 'aliyun/oss'
client = Aliyun::OSS::Client.new(
# Wilayah China (Hangzhou) digunakan sebagai contoh. Ganti Endpoint dengan titik akhir wilayah Anda.
endpoint: 'https://oss-cn-hangzhou.aliyuncs.com',
# Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi.
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 daftar Referer untuk bucket tersebut.
bucket.referer = Aliyun::OSS::BucketReferer.new(
allow_empty: true, whitelist: ['http://www.aliyun.com', 'https:www.aliyun.com'])Dapatkan konfigurasi perlindungan hotlink
Kode berikut menunjukkan cara mengambil konfigurasi perlindungan hotlink:
require 'aliyun/oss'
client = Aliyun::OSS::Client.new(
# Wilayah China (Hangzhou) digunakan sebagai contoh. Ganti Endpoint dengan titik akhir wilayah Anda.
endpoint: 'https://oss-cn-hangzhou.aliyuncs.com',
# Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi.
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')
ref = bucket.referer
puts ref.to_sHapus konfigurasi perlindungan hotlink
Kode berikut menunjukkan cara menghapus konfigurasi perlindungan hotlink:
require 'aliyun/oss'
client = Aliyun::OSS::Client.new(
# Wilayah China (Hangzhou) digunakan sebagai contoh. Ganti Endpoint dengan titik akhir wilayah Anda.
endpoint: 'https://oss-cn-hangzhou.aliyuncs.com',
# Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi.
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.referer = Aliyun::OSS::BucketReferer.new(allow_empty: true, whitelist: [])Referensi
Untuk detail operasi API guna mengatur perlindungan hotlink, lihat PutBucketReferer.
Untuk detail operasi API guna mengambil konfigurasi perlindungan hotlink, lihat GetBucketReferer.