Configure reglas de ciclo de vida basadas en la hora de última modificación para transicionar objetos automáticamente a clases de almacenamiento más frías o eliminarlos, y así reducir los costos de almacenamiento.
Notas de uso
Antes de configurar reglas de ciclo de vida basadas en la hora de última modificación de los objetos, asegúrese de familiarizarse con esta función. Para obtener más información, consulte Lifecycle rules based on the last modified time.
Permisos obligatorios:
oss:PutBucketLifecyclepara configurar reglas,oss:GetBucketLifecyclepara consultar reglas yoss:DeleteBucketLifecyclepara eliminar todas las reglas de ciclo de vida. Consulte Grant custom access policies to a RAM user.Antes de ejecutar el código de ejemplo de este tema, cree una instancia de OSSClient mediante métodos como el uso de un nombre de dominio personalizado o Security Token Service (STS). Para obtener más información, consulte Initialization (Android SDK).
Configuración de reglas de ciclo de vida
El siguiente código configura reglas de ciclo de vida basadas en la hora de última modificación para un bucket llamado examplebucket. También puede modify existing lifecycle rules.
PutBucketLifecycleRequest request = new PutBucketLifecycleRequest();
request.setBucketName("examplebucket");
BucketLifecycleRule rule1 = new BucketLifecycleRule();
// Set the rule ID and file prefix.
rule1.setIdentifier("1");
rule1.setPrefix("A");
// Specify whether to execute the lifecycle rule. If the value is true, OSS periodically executes the rule. If the value is false, OSS ignores the rule.
rule1.setStatus(true);
// Expire objects 200 days after the last modified time.
rule1.setDays("200");
// Transition objects to the Archive storage class after 30 days.
rule1.setArchiveDays("30");
// Expire incomplete multipart uploads after 3 days.
rule1.setMultipartDays("3");
// Transition objects to the Infrequent Access (IA) storage class after 15 days.
rule1.setIADays("15");
BucketLifecycleRule rule2 = new BucketLifecycleRule();
rule2.setIdentifier("2");
rule2.setPrefix("B");
rule2.setStatus(true);
rule2.setDays("300");
rule2.setArchiveDays("30");
rule2.setMultipartDays("3");
rule2.setIADays("15");
ArrayList<BucketLifecycleRule> lifecycleRules = new ArrayList<BucketLifecycleRule>();
lifecycleRules.add(rule1);
lifecycleRules.add(rule2);
request.setLifecycleRules(lifecycleRules);
OSSAsyncTask task = oss.asyncPutBucketLifecycle(request, new OSSCompletedCallback<PutBucketLifecycleRequest, PutBucketLifecycleResult>() {
@Override
public void onSuccess(PutBucketLifecycleRequest request, PutBucketLifecycleResult result) {
OSSLog.logInfo("code::"+result.getStatusCode());
}
@Override
public void onFailure(PutBucketLifecycleRequest request, ClientException clientException, ServiceException serviceException) {
OSSLog.logError("error: "+serviceException.getRawMessage());
}
});
task.waitUntilFinished();
Consulta de reglas de ciclo de vida
El siguiente código muestra cómo consultar las reglas de ciclo de vida configuradas para el bucket examplebucket:
GetBucketLifecycleRequest request = new GetBucketLifecycleRequest();
request.setBucketName("examplebucket");
OSSAsyncTask task = oss.asyncGetBucketLifecycle(request, new OSSCompletedCallback<GetBucketLifecycleRequest, GetBucketLifecycleResult>() {
@Override
public void onSuccess(GetBucketLifecycleRequest request, GetBucketLifecycleResult result) {
ArrayList<BucketLifecycleRule> list = result.getlifecycleRules();
for (BucketLifecycleRule rule : list){
OSSLog.logInfo("info: " + rule.getIdentifier());
}
}
@Override
public void onFailure(GetBucketLifecycleRequest request, ClientException clientException, ServiceException serviceException) {
OSSLog.logError("error: "+serviceException.getRawMessage());
}
});
task.waitUntilFinished();
Eliminación de reglas de ciclo de vida
El siguiente código muestra cómo borrar las reglas de ciclo de vida del bucket examplebucket. Si desea eliminar reglas específicas, consulte Delete lifecycle rules.
DeleteBucketLifecycleRequest request = new DeleteBucketLifecycleRequest();
request.setBucketName("examplebucket");
OSSAsyncTask task = oss.asyncDeleteBucketLifecycle(request,"examplebucket" new OSSCompletedCallback<DeleteBucketLifecycleRequest, DeleteBucketLifecycleResult>() {
@Override
public void onSuccess(DeleteBucketLifecycleRequest request, DeleteBucketLifecycleResult result) {
OSSLog.logInfo("code : "+result.getStatusCode());
}
@Override
public void onFailure(DeleteBucketLifecycleRequest request, ClientException clientException, ServiceException serviceException) {
OSSLog.logError("error: "+serviceException.getRawMessage());
}
});
task.waitUntilFinished();
Referencias
Código de ejemplo completo para gestionar reglas de ciclo de vida: GitHub.
Operación de API para configurar reglas de ciclo de vida: PutBucketLifecycle.
Operación de API para consultar reglas de ciclo de vida: GetBucketLifecycle.
Operación de API para eliminar reglas de ciclo de vida: DeleteBucketLifecycle.
Inicialización de una instancia de OSSClient: Initialization.