Todos os produtos
Search
Central de documentação

Object Storage Service:Image processing (Android SDK)

Última atualização: Aug 28, 2026

O Image Processing (IMG) do Object Storage Service (OSS) é um service seguro, econômico e altamente confiável para processar grandes volumes de imagens. Após carregar as imagens no OSS, chame operações da API RESTful para processá-las a qualquer momento e em qualquer lugar, desde que o dispositivo esteja conectado à internet.

Observações de uso

  • Antes de executar o código de exemplo deste tópico, crie uma instância do OSSClient por meio de métodos como nome de domínio personalizado ou Security Token Service (STS). Para mais informações, consulte Initialization (Android SDK).

Uso do IMG

Nota

Os parâmetros do IMG aplicam-se apenas aos dados da imagem baixada e não afetam as imagens originais. Para substituir as imagens originais pelas versões processadas, consulte Save processed images.

  • Acesso anônimo

    String url = oss.presignPublicObjectURL(testBucket, testObject);
            OSSLog.logDebug("signPublicURL", "get url: " + url);
    Then, append the x-oss-process parameter to the URL. The parameter's value specifies the image processing operation.
  • Acesso autorizado

    Para processar uma imagem com o SDK, chame o método request.setxOssProcess() e defina os parâmetros de processamento na solicitação de download. O código abaixo apresenta um exemplo:

    // Create a request to download an image.
    // Specify the bucket name (for example, examplebucket) and the object full path (for example, exampledir/exampleobject.txt). The object full path cannot contain the bucket name.
    GetObjectRequest request = new GetObjectRequest("examplebucket", "exampledir/exampleobject.txt");
    
    // Process the image.
    request.setxOssProcess("image/resize,m_fixed,w_100,h_100");
    
    OSSAsyncTask task = oss.asyncGetObject(get, new OSSCompletedCallback<GetObjectRequest, GetObjectResult>() {
        @Override
        public void onSuccess(GetObjectRequest request, GetObjectResult result) {
            // The request is successful.
            InputStream inputStream = result.getObjectContent();
    
            byte[] buffer = new byte[2048];
            int len;
    
            try {
                while ((len = inputStream.read(buffer)) != -1) {
                    // Process the downloaded data.
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    
        @Override
        public void onFailure(GetObjectRequest request, ClientException clientException, ServiceException serviceException) {
            // Handle the exception. You can add your own exception handling logic.
        }
    });
    Nota

    Para execute outras operações na imagem, substitua o argumento passado para request.setxOssProcess().

  • Acesso via OSS SDK

    GetObjectRequest request = new GetObjectRequest("bucket-name", "image-name");
    request.setxOssProcess("image/resize,m_lfit,w_100,h_100");  // Set image processing parameters.
    OSSAsyncTask task = oss.asyncGetObject(request, getCallback);

Salvar imagens processadas

O exemplo de código a seguir demonstra como salve imagens processadas:

// fromBucket and toBucket specify the source and destination bucket names.
// fromObjectKey and toObjectKey specify the source and destination object names. The names must be full paths that include the file extension, for example, abc/efg/123.jpg.
// action specifies the image processing operation, such as "image/resize,m_lfit,w_100,h_100".
ImagePersistRequest request = new ImagePersistRequest(fromBucket,fromObjectKey,toBucket,toObjectKey,action);

        OSSAsyncTask task = oss.asyncImagePersist(request, new OSSCompletedCallback<ImagePersistRequest, ImagePersistResult>() {
            @Override
            public void onSuccess(ImagePersistRequest request, ImagePersistResult result) {
                // Success callback
                log.i("info", "Success");
            }

            @Override
            public void onFailure(ImagePersistRequest request, ClientException clientException, ServiceException serviceException) {
              // The request failed.
              if (clientException != null) {
                  // A client-side exception occurred, such as a network error.
                  clientException.printStackTrace();
              }
              if (serviceException != null) {
                  // A server-side exception occurred.
                  Log.e("ErrorCode", serviceException.getErrorCode());
                  Log.e("RequestId", serviceException.getRequestId());
                  Log.e("HostId", serviceException.getHostId());
                  Log.e("RawMessage", serviceException.getRawMessage());
              }
            }
        });

Referências

  • Para obter detalhes sobre os parâmetros de IMG compatíveis, consulte IMG parameters.

  • O código de exemplo completo para operações de IMG está disponível no GitHub.

  • Para saber mais sobre como inicializar uma instância do OSSClient, consulte Initialization.