Todos los productos
Search
Centro de documentos

Object Storage Service:Hotlink protection (Android SDK)

Última actualización: Sep 22, 2026

Con el kit de desarrollo de software (SDK) de Android, usted configura reglas de acceso basadas en Referer para sus buckets de Object Storage Service (OSS). Estas reglas incluyen una lista blanca de Referer, una lista negra de Referer y una opción para permitir solicitudes con un Referer vacío. Esta función evita el hotlinking de sus archivos de OSS y le ayuda a evitar cargos innecesarios por tráfico.

Notas de uso

  • Antes de configurar la protección contra hotlinking, asegúrese de conocer bien esta función. Para obtener más información, consulte Hotlink protection.

  • En este tema se utiliza el endpoint público de la región China (Hangzhou). Para acceder a OSS desde otros servicios de Alibaba Cloud en la misma región, utilice un endpoint interno. Para obtener detalles sobre las regiones y los endpoints compatibles, consulte Regions and endpoints.

  • Este tema muestra cómo crear una instancia de OSSClient con un endpoint de OSS. Para conocer configuraciones alternativas, como el uso de un dominio personalizado o la autenticación con credenciales de Security Token Service (STS), consulte Initialization (Android SDK).

  • Para establecer o borrar la protección contra hotlinking, necesita el oss:PutBucketReferer permiso. Para recuperar la configuración de protección contra hotlinking, necesita el oss:GetBucketReferer permiso. Para obtener más información, consulte Attach a custom policy to a RAM user.

Establecer la protección contra hotlinking

A continuación se muestra un ejemplo de código para configurar la protección contra hotlinking de un bucket:

PutBucketRefererRequest request = new PutBucketRefererRequest();
request.setBucketName("examplebucket");
// Add a Referer whitelist. The Referer parameter supports the asterisk (*) and question mark (?) wildcard characters.
ArrayList<String> referers = new ArrayList<String>();
referers.add("http://www.aliyun.com");
referers.add("https://www.aliyun.com");
// referers.add("http://www.www.alibabacloud.com/help");
// referers.add("http://www.?.aliyuncs.com");
request.setReferers(referers);

OSSAsyncTask task = oss.asyncPutBucketReferer(request, new OSSCompletedCallback<PutBucketRefererRequest, PutBucketRefererResult>() {
    @Override
    public void onSuccess(PutBucketRefererRequest request, PutBucketRefererResult result) {
        OSSLog.logInfo("code: " + result.getStatusCode());
    }
    @Override
    public void onFailure(PutBucketRefererRequest request, ClientException clientException, ServiceException serviceException) {
        OSSLog.logError("error: "+serviceException.getRawMessage());
    }
});
task.waitUntilFinished();

Obtener la configuración de protección contra hotlinking

A continuación se muestra un ejemplo de código para consultar la configuración de protección contra hotlinking de un bucket:

GetBucketRefererRequest request = new GetBucketRefererRequest();
request.setBucketName("yourBucketName");
OSSAsyncTask task = oss.asyncGetBucketReferer(request, new OSSCompletedCallback<GetBucketRefererRequest, GetBucketRefererResult>() {
    @Override
    public void onSuccess(GetBucketRefererRequest request, GetBucketRefererResult result) {
        // Get the Referer whitelist of the bucket.
        ArrayList<String> list = result.getReferers();
        for (String ref : list){
            OSSLog.logInfo("info: " + ref);
        }
    }
    @Override
    public void onFailure(GetBucketRefererRequest request, ClientException clientException, ServiceException serviceException) {
        OSSLog.logError("error: "+serviceException.getRawMessage());
    }
});
task.waitUntilFinished();

Borrar la configuración de protección contra hotlinking

A continuación se muestra un ejemplo de código para eliminar la configuración de protección contra hotlinking de un bucket:

PutBucketRefererRequest request = new PutBucketRefererRequest();
request.setBucketName("yourBucketName");
request.setAllowEmpty(true);
// Hotlink protection configurations cannot be directly cleared. You must create a new rule that allows empty Referers to overwrite the previous rule.
ArrayList<String> referers = new ArrayList<String>();

request.setReferers(referers);
OSSAsyncTask task = oss.asyncPutBucketReferer(request, new OSSCompletedCallback<PutBucketRefererRequest, PutBucketRefererResult>() {
    @Override
    public void onSuccess(PutBucketRefererRequest request, PutBucketRefererResult result) {
        OSSLog.logInfo("code: " + result.getStatusCode());

    }
    @Override
    public void onFailure(PutBucketRefererRequest request, ClientException clientException, ServiceException serviceException) {
        OSSLog.logError("error: "+serviceException.getRawMessage());

    }
});
task.waitUntilFinished();

Referencias

  • Para ver el código de ejemplo completo sobre la protección contra hotlinking, consulte GitHub.

  • Para obtener más información sobre la operación de API que permite configurar la protección contra hotlinking, consulte PutBucketReferer.

  • Para obtener más información sobre la operación de API que permite recuperar la configuración de protección contra hotlinking, consulte GetBucketReferer.