Todos los productos
Search
Centro de documentos

Object Storage Service:Consultar la capacidad de almacenamiento de un bucket (OSS SDK for Java 1.0)

Última actualización: Sep 22, 2026

Este tema describe cómo obtener la capacidad de almacenamiento de un bucket, así como la cantidad y el tamaño de los objetos por cada clase de almacenamiento dentro del mismo.

Notas de uso

  • 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, use un endpoint interno. Para más detalles sobre las regiones y los endpoints compatibles, consulte Regions and endpoints.

  • Las credenciales de acceso se obtienen a partir de variables de entorno. Para más información, consulte 配置访问凭证.

  • Este tema muestra cómo crear una instancia de OSSClient con un endpoint de OSS. Para configuraciones alternativas, como usar un dominio personalizado o autenticarse con credenciales de Security Token Service (STS), consulte Client configuration.

  • Para consultar la capacidad de almacenamiento de un bucket, necesita el permiso oss:GetBucketStat. Para más información, consulte Grant a custom policy.

Código de ejemplo

A continuación se muestra el código que obtiene la capacidad de almacenamiento de un bucket llamado examplebucket, junto con la cantidad y el tamaño de los objetos para cada clase de almacenamiento.

Importante

Solo las versiones 3.14.1 y posteriores del OSS SDK for Java admiten todas las propiedades incluidas en el siguiente código de ejemplo.

import com.aliyun.oss.*;
import com.aliyun.oss.common.auth.*;
import com.aliyun.oss.common.comm.SignVersion;
import com.aliyun.oss.model.BucketStat;

public class Demo {
    public static void main(String[] args) throws Exception {
        // This example uses the endpoint of the China (Hangzhou) region. Specify the actual endpoint.
        String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
        // Obtain access credentials from environment variables. Before you run this code, make sure that the OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET environment variables are set.
        EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
        // Specify the bucket name. For example, examplebucket.
        String bucketName = "examplebucket";
        // Specify the region where the bucket is located. For example, if the bucket is in the China (Hangzhou) region, set the region to cn-hangzhou.
        String region = "cn-hangzhou";

        // Create an OSSClient instance.
        // When the OSSClient instance is no longer needed, call the shutdown method to release resources.
        ClientBuilderConfiguration clientBuilderConfiguration = new ClientBuilderConfiguration();
        clientBuilderConfiguration.setSignatureVersion(SignVersion.V4);
        OSS ossClient = OSSClientBuilder.create()
                .endpoint(endpoint)
                .credentialsProvider(credentialsProvider)
                .clientConfiguration(clientBuilderConfiguration)
                .region(region)
                .build();

        try {
            BucketStat stat = ossClient.getBucketStat(bucketName);
            // Get the total storage capacity of the bucket in bytes.
            System.out.println("StorageSize:"+stat.getStorageSize());
            // Get the total number of objects in the bucket.
            System.out.println("ObjectCount:"+stat.getObjectCount());
            // Get the number of multipart upload tasks that are initiated but not completed or aborted.
            System.out.println("MultipartUploadCount:"+stat.getMultipartUploadCount());
            // Get the storage capacity of Standard objects in bytes.
            System.out.println("StandardStorage:"+stat.getStandardStorage());
            // Get the number of Standard objects.
            System.out.println("StandardObjectCount:"+stat.getStandardObjectCount());
            // Get the number of LiveChannels in the bucket.
            System.out.println("LiveChannelCount:"+stat.getLiveChannelCount());
            // The time when the storage information was obtained. The value is a UNIX timestamp in seconds.
            System.out.println("LastModifiedTime:"+stat.getLastModifiedTime());
            // Get the billable storage capacity of Infrequent Access (IA) objects in bytes.
            System.out.println("InfrequentAccessStorage:"+stat.getInfrequentAccessStorage());
            // Get the actual storage capacity of IA objects in bytes.
            System.out.println("InfrequentAccessRealStorage:"+stat.getInfrequentAccessRealStorage());
            // Get the number of IA objects.
            System.out.println("InfrequentAccessObjectCount:"+stat.getInfrequentAccessObjectCount());
            // Get the billable storage capacity of Archive Storage objects in bytes.
            System.out.println("ArchiveStorage:"+stat.getArchiveStorage());
            // Get the actual storage capacity of Archive Storage objects in bytes.
            System.out.println("ArchiveRealStorage:"+stat.getArchiveRealStorage());
            // Get the number of Archive Storage objects.
            System.out.println("ArchiveObjectCount:"+stat.getArchiveObjectCount());
            // Get the billable storage capacity of Cold Archive objects in bytes.
            System.out.println("ColdArchiveStorage:"+stat.getColdArchiveStorage());
            // Get the actual storage capacity of Cold Archive objects in bytes.
            System.out.println("ColdArchiveRealStorage:"+stat.getColdArchiveRealStorage());
            // Get the number of Cold Archive objects.
            System.out.println("ColdArchiveObjectCount:"+stat.getColdArchiveObjectCount());
        } catch (OSSException oe) {
            System.out.println("Caught an OSSException, which means your request made it to OSS, "
                    + "but was rejected with an error response for some reason.");
            System.out.println("Error Message:" + oe.getErrorMessage());
            System.out.println("Error Code:" + oe.getErrorCode());
            System.out.println("Request ID:" + oe.getRequestId());
            System.out.println("Host ID:" + oe.getHostId());
        } catch (ClientException ce) {
            System.out.println("Caught an ClientException, which means the client encountered "
                    + "a serious internal problem while trying to communicate with OSS, "
                    + "such as not being able to access the network.");
            System.out.println("Error Message:" + ce.getMessage());
        } finally {
            if (ossClient != null) {
                ossClient.shutdown();
            }
        }
    }
}

Referencias

Para más información sobre la operación de API que permite obtener la capacidad de almacenamiento de un bucket, así como la cantidad y el tamaño de los objetos por cada clase de almacenamiento, consulte GetBucketStat.