Hotlink Protection

Last updated: 2022-01-17 12:46:50

    Overview

    This document provides an overview of APIs and SDK code samples related to bucket referer allowlist or blocklist.

    Note:

    The COS PYTHON SDK version should not be earlier than v5.1.9.7.

    API Operation Description
    PUT Bucket referer Setting bucket referer configuration Sets a bucket referer allowlist or blocklist
    GET Bucket referer Querying bucket referer configuration Queries a bucket referer allowlist or blocklist

    Setting Bucket Referer Configuration

    Description

    This API (PUT Bucket referer) is used to set a referer allowlist/blocklist for a bucket.

    Method prototype

    put_bucket_referer(Bucket, RefererConfiguration, **kwargs)
    

    Sample request

    # -*- coding=utf-8
    from qcloud_cos import CosConfig
    from qcloud_cos import CosS3Client
    import sys
    import logging
    # In most cases, set the log level to INFO. If you need to debug, you can set it to DEBUG and the SDK will print the communication information of the client.
    logging.basicConfig(level=logging.INFO, stream=sys.stdout)
    # 1. Set user attributes such as secret_id, secret_key, and region. Appid has been removed from CosConfig and thus needs to be specified in Bucket, which is formatted as BucketName-Appid.
    secret_id = 'SecretId'     # Replace it with the actual SecretId, which can be viewed and managed at https://console.cloud.tencent.com/cam/capi
    secret_key = 'SecretKey'     # Replace it with the actual SecretKey, which can be viewed and managed at https://console.cloud.tencent.com/cam/capi
    region = 'ap-beijing'      # Replace it with the actual region, which can be viewed in the console at https://console.cloud.tencent.com/cos5/bucket
                             # For the list of regions supported by COS, see https://intl.cloud.tencent.com/document/product/436/6224
    token = None               # Token is required for temporary keys but not permanent keys. For more information about how to generate and use a temporary key, visit https://intl.cloud.tencent.com/document/product/436/14048
    scheme = 'https'           # Specify whether to use HTTP or HTTPS protocol to access COS. This is optional and is https by default.
    config = CosConfig(Region=region, SecretId=secret_id, SecretKey=secret_key, Token=token, Scheme=scheme)
    client = CosS3Client(config)
    referer_config = {
      'Status': 'Enabled',
      'RefererType': 'White-List',
      'EmptyReferConfiguration': 'Allow',
      'DomainList': {
          'Domain': [
              '*.qq.com',
              '*.qcloud.com'
          ]
      }
    }
    response = client.put_bucket_referer(
      Bucket='examplebucket-1250000000',
      RefererConfiguration=referer_config
    )
    

    Parameter description

    Parameter Description Type
    bucketName Bucket name in the format of BucketName-APPID. For details, see Naming Conventions String
    RefererConfiguration Referer configuration of the bucket Dict

    Description of RefererConfiguration:

    Parameter Description Type Required
    Status Whether to enable hotlink protection. Enumerated values: Enabled, Disabled String Yes
    RefererType Hotlink protection type. Enumerated values: Black-List, White-List String Yes
    DomainList Domain list Dict Yes
    Domain Domains, which can include ports, IPs, or asterisks (*). You can set multiple domains. List Yes
    EmptyReferConfiguration Whether to allow access with an empty referer. Enumerated values: Allow, Deny String No

    Response description

    This API returns None.

    Querying Bucket Referer Configuration

    Description

    This API (GET Bucket referer) is used to query the referer allowlist/blocklist of a bucket.

    Method prototype

    get_bucket_referer(Bucket, **kwargs)
    

    Sample request

    response = client.get_bucket_referer(
      Bucket='examplebucket-1250000000'
    )
    

    Parameter description

    Parameter Description Type
    bucketName Bucket name in the format of BucketName-APPID. For details, see Naming Conventions String

    Response description

    The bucket referer configuration is returned. For more information, please see the description of RefererConfiguration.

    Deleting a Bucket Referer

    Description

    This API (DELETE Bucket referer) is used to delete the referer allowlist/blocklist set for a bucket.

    Method prototype

    delete_bucket_referer(Bucket, **kwargs)
    

    Sample request

    response = client.delete_bucket_referer(
      Bucket='examplebucket-1250000000'
    )
    

    Parameter description

    Parameter Description Type
    bucketName Bucket name in the format of BucketName-APPID. For details, see Naming Conventions String

    Response description

    This API returns None.