A operação PutBucketLogging ativa o recurso de transferência de logs para um bucket. Esse recurso gera arquivos de log a cada hora, seguindo uma convenção de nomenclatura fixa, e grava os logs de acesso do OSS no bucket especificado.
Observações de uso
A permissão
oss:PutBucketLoggingé necessária para ativar o registro em log de um bucket por meio da operação PutBucketLogging. Para mais informações, consulte Grant a custom policy.O bucket de origem, onde os logs são gerados, e o bucket de destino, onde ficam armazenados, podem ser iguais ou diferentes. No entanto, o bucket de destino deve pertencer à mesma conta Alibaba Cloud e estar na mesma região do bucket de origem.
-
O OSS gera logs de acesso ao bucket de hora em hora. Contudo, as requisições de uma determinada hora podem aparecer no log da hora anterior ou da seguinte.
Para mais detalhes sobre as convenções de nomenclatura dos objetos de log e o formato dos logs, consulte Logging.
-
Enquanto o registro em log estiver ativo, o OSS continuará gerando objetos de log. Exclua os objetos de log desnecessários para reduzir custos de armazenamento.
Configure regras de ciclo de vida para excluir objetos de log periodicamente. Para mais informações, consulte Lifecycle rules based on last modification time.
Novos campos podem ser adicionados aos logs do OSS futuramente. Recomendamos que os desenvolvedores considerem possíveis problemas de compatibilidade ao criar ferramentas de processamento de logs.
Permissões
Por padrão, uma conta Alibaba Cloud possui permissões totais. Usuários RAM ou funções RAM vinculados a essa conta não têm nenhuma permissão inicialmente. A conta Alibaba Cloud ou o administrador da conta deve conceder as permissões operacionais necessárias por meio de RAM policies ou Bucket Policy.
|
API |
Action |
Descrição |
|
PutBucketLogging |
|
Ativa o registro em log para um bucket. |
|
|
Necessária para o bucket de destino quando os logs forem gravados em um bucket diferente daquele onde o registro em log foi ativado. |
Sintaxe da requisição
PUT /?logging HTTP/1.1
Date: GMT Date
Content-Length: ContentLength
Content-Type: application/xml
Authorization: SignatureValue
Host: Host
<?xml version="1.0" encoding="UTF-8"?>
<BucketLoggingStatus>
<LoggingEnabled>
<TargetBucket>TargetBucket</TargetBucket>
<TargetPrefix>TargetPrefix</TargetPrefix>
</LoggingEnabled>
</BucketLoggingStatus>
Cabeçalhos da requisição
Uma requisição PutBucketLogging contém apenas cabeçalhos comuns de requisição. Para mais informações, consulte Common request headers.
Elementos da requisição
Elemento | Tipo | Obrigatório | Exemplo | Descrição |
BucketLoggingStatus | Container | Sim | N/A | Container que armazena as informações de status do registro em log. Nós filhos: LoggingEnabled Nós pais: nenhum |
LoggingEnabled | Container | Parâmetro obrigatório ao ativar o registro em log. | N/A | Container que armazena as informações do log de acesso. Nós filhos: TargetBucket, TargetPrefix e LoggingRole Nós pais: BucketLoggingStatus |
TargetBucket | String | Parâmetro obrigatório ao ativar o registro em log. | examplebucket | Bucket destinado ao armazenamento dos logs de acesso. Nós filhos: nenhum Nós pais: BucketLoggingStatus e LoggingEnabled |
TargetPrefix | String | Não | MyLog- | Prefixo dos objetos de log salvos. Este elemento pode ficar vazio. Nós filhos: nenhum Nós pais: BucketLoggingStatus e LoggingEnabled |
LoggingRole | String | Não | AliyunOSSLoggingDefaultRole | Nome da função RAM que autoriza o OSS a gravar logs, como AliyunOSSLoggingDefaultRole. Especifique o nome da função RAM, não o ARN da função RAM. Nós filhos: nenhum Nó pai: BucketLoggingStatus.LoggingEnabled |
Cabeçalhos da resposta
Todos os cabeçalhos na resposta de uma requisição PutBucketLogging são cabeçalhos comuns de resposta. Para mais informações, consulte Common response headers.
Exemplos
Exemplos para buckets
-
Exemplo de requisição para ativar o registro em log
PUT /?logging HTTP/1.1 Host: oss-example.oss-cn-hangzhou.aliyuncs.com Content-Length: 186 Date: Thu, 17 Apr 2025 03:21:12 GMT Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,AdditionalHeaders=content-length,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e <?xml version="1.0" encoding="UTF-8"?> <BucketLoggingStatus> <LoggingEnabled> <TargetBucket>examplebucket</TargetBucket> <TargetPrefix>MyLog-</TargetPrefix> <LoggingRole>AliyunOSSLoggingDefaultRole</LoggingRole> </LoggingEnabled> </BucketLoggingStatus>Exemplo de resposta
HTTP/1.1 200 OK x-oss-request-id: 534B371674E888648906008B Date: Fri, 04 May 2012 03:21:12 GMT Content-Length: 0 Connection: keep-alive Server: AliyunOSS -
Exemplo de requisição para desativar o registro em log
Para desativar o registro em log de um bucket, envie apenas um BucketLoggingStatus vazio. Exemplo:
PUT /?logging HTTP/1.1 Host: oss-example.oss-cn-hangzhou.aliyuncs.com Content-Type: application/xml Content-Length: 86 Date: Thu, 17 Apr 2025 04:21:12 GMT Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,AdditionalHeaders=content-length,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e <?xml version="1.0" encoding="UTF-8"?> <BucketLoggingStatus> </BucketLoggingStatus>Exemplo de resposta
HTTP/1.1 200 OK x-oss-request-id: 534B371674125A4D8906008B Date: Fri, 04 May 2012 04:21:12 GMT Content-Length: 0 Connection: keep-alive Server: AliyunOSSExemplos para buckets vetoriais
Ao especificar o
Hostpara um bucket vetorial, utilize o ID de região padrão da Alibaba Cloud (exemplo:cn-hangzhou). Não use o ID de região legado do OSS (exemplo:oss-cn-hangzhou) aplicado a buckets de uso geral.Exemplo de requisição para ativar o registro em log
PUT /?logging HTTP/1.1 Host: examplebucket-123***456.cn-hangzhou-internal.oss-vectors.aliyuncs.com Content-Length: 186 Content-Type: application/json Date: Thu, 17 Apr 2025 03:21:12 GMT Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,AdditionalHeaders=content-length,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e { "BucketLoggingStatus": { "LoggingEnabled": { "TargetBucket": "examplebucket", "TargetPrefix": "MyLog-", "LoggingRole": "AliyunOSSLoggingDefaultRole" } } }Exemplo de resposta
HTTP/1.1 200 OK x-oss-request-id: 534B371674E888648906008B Date: Fri, 04 May 2012 03:21:12 GMT Content-Length: 0 Connection: keep-alive Server: AliyunOSS
SDKs do OSS
Use os SDKs do OSS nas linguagens de programação abaixo para chamar a operação PutBucketLogging:
ossutil
Para informações sobre o comando do ossutil correspondente à operação PutBucketLogging, consulte put-bucket-logging.
Códigos de erro
|
Código de erro |
Código de status HTTP |
Descrição |
|
NoSuchBucket |
404 |
Retornado quando o bucket de origem não existe. |
|
InvalidTargetBucketForLogging |
400 |
Indica que o bucket de origem e o bucket de destino não pertencem ao mesmo data center. |
|
InvalidDigest |
400 |
Ocorre quando o valor Content-MD5 do corpo da mensagem difere do valor Content-MD5 no cabeçalho da requisição. |
|
MalformedXML |
400 |
Sinaliza que o formato XML na requisição é inválido. |
|
InvalidTargetBucketForLogging |
403 |
Retornado se o solicitante não for o proprietário do bucket de destino. |
|
AccessDenied |
403 |
Indica que o solicitante não é o proprietário do bucket de origem. |