Le kit de développement logiciel (SDK) Ruby vous permet de configurer des règles d'accès dans Object Storage Service (OSS) en fonction de l'en-tête de requête Referer. Ces règles incluent une liste blanche de Referers, une liste noire de Referers et la possibilité d'autoriser ou non les en-têtes Referer vides. Cette configuration empêche d'autres sites web d'utiliser vos fichiers OSS via des liens directs (hotlinking) et vous aide à éviter des coûts de trafic inutiles.
Précautions
Avant de configurer la protection contre le hotlinking, assurez-vous de bien comprendre cette fonctionnalité. Pour plus d'informations, consultez la rubrique Protection contre le hotlinking.
Cette rubrique utilise l'endpoint public de la région Chine (Hangzhou). Si vous souhaitez accéder à OSS depuis d'autres services Alibaba Cloud situés dans la même région, utilisez un endpoint interne. Pour plus d'informations sur les régions et les endpoints OSS, consultez la rubrique Régions et endpoints.
Cette rubrique illustre la création d'une instance
OSSClientavec un endpoint OSS. Pour d'autres configurations, telles que l'utilisation d'un domaine personnalisé ou l'authentification via des identifiants du Security Token Service (STS), consultez la rubrique Initialisation (SDK Ruby).Pour configurer la protection contre le hotlinking, vous devez disposer de l'autorisation
oss:PutBucketReferer. Pour consulter les configurations de protection contre le hotlinking, vous devez disposer de l'autorisationoss:GetBucketReferer. Pour plus d'informations, consultez la rubrique Accorder une politique personnalisée.
Définir la protection contre le hotlinking
Le code suivant montre comment définir la protection contre le hotlinking :
require 'aliyun/oss'
client = Aliyun::OSS::Client.new(
# The China (Hangzhou) region is used as an example. Replace the Endpoint with the one for your 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 configured.
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')
# Set the Referer list for the bucket.
bucket.referer = Aliyun::OSS::BucketReferer.new(
allow_empty: true, whitelist: ['http://www.aliyun.com', 'https:www.aliyun.com'])
Obtenir la configuration de protection contre le hotlinking
Le code suivant montre comment récupérer la configuration de protection contre le hotlinking :
require 'aliyun/oss'
client = Aliyun::OSS::Client.new(
# The China (Hangzhou) region is used as an example. Replace the Endpoint with the one for your 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 configured.
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')
ref = bucket.referer
puts ref.to_s
Effacer la configuration de protection contre le hotlinking
Le code suivant montre comment effacer la configuration de protection contre le hotlinking :
require 'aliyun/oss'
client = Aliyun::OSS::Client.new(
# The China (Hangzhou) region is used as an example. Replace the Endpoint with the one for your 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 configured.
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')
bucket.referer = Aliyun::OSS::BucketReferer.new(allow_empty: true, whitelist: [])
Références
Pour plus de détails sur l'opération API permettant de définir la protection contre le hotlinking, consultez la rubrique PutBucketReferer.
Pour plus de détails sur l'opération API permettant de récupérer la configuration de protection contre le hotlinking, consultez la rubrique GetBucketReferer.