Configure regras de ciclo de vida com base na última modificação para migrar objetos automaticamente para classes de armazenamento mais frias ou excluí-los e reduzir custos de armazenamento.
Observações de uso
Antes de configurar regras de ciclo de vida baseadas na última modificação dos objetos, familiarize-se com esse recurso. Para obter mais informações, consulte Regras de ciclo de vida baseadas na última modificação.
Permissões necessárias:
oss:PutBucketLifecyclepara configurar regras,oss:GetBucketLifecyclepara consultar regras eoss:DeleteBucketLifecyclepara excluir todas as regras de ciclo de vida. Consulte Conceder políticas de acesso personalizadas a um usuário do RAM.Antes de executar o código de exemplo neste tópico, crie uma instância OSSClient usando métodos como nome de domínio personalizado ou Security Token Service (STS). Para obter mais informações, consulte Inicialização (Android SDK).
Configurar regras de ciclo de vida
O código a seguir configura regras de ciclo de vida baseadas na última modificação para um bucket chamado examplebucket. Você também pode modificar regras de ciclo de vida existentes.
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();
Consultar regras de ciclo de vida
O código a seguir consulta as regras de ciclo de vida configuradas para o bucket chamado 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();
Excluir regras de ciclo de vida
O código a seguir limpa as regras de ciclo de vida em um bucket chamado examplebucket. Para excluir regras específicas, consulte Excluir regras de ciclo de vida.
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();
Referências
Código de exemplo completo para gerenciar regras de ciclo de vida: GitHub.
Operação da API para configurar regras de ciclo de vida: PutBucketLifecycle.
Operação da API para consultar regras de ciclo de vida: GetBucketLifecycle.
Operação da API para excluir regras de ciclo de vida: DeleteBucketLifecycle.
Inicializar uma instância OSSClient: Inicialização.