Ative o registro de logs para um bucket. Após a ativação e configuração do logging, o Object Storage Service (OSS) gera objetos de log com base em uma convenção de nomenclatura predefinida. Assim, os logs de acesso são gerados e armazenados no bucket especificado a cada hora.
Observações de uso
A permissão
oss:PutBucketLoggingé necessária para ativar o logging de um bucket por meio da operação PutBucketLogging. Para mais informações, consulte Conceder uma política personalizada.O bucket de origem (para o qual os logs são gerados) e o bucket de destino (onde os logs são 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 a cada hora. Contudo, as requisições de uma determinada hora podem constar no log da hora anterior ou da seguinte.
Para mais informações sobre as convenções de nomenclatura dos objetos de log e o formato dos logs, consulte Logging.
-
Enquanto o logging estiver ativo, o OSS continuará gerando objetos de log. Exclua os objetos desnecessários para reduzir custos de armazenamento.
Configure regras de ciclo de vida para excluir objetos de log regularmente. Para mais informações, consulte Regras de ciclo de vida baseadas na última modificação.
Novos campos podem ser adicionados aos logs do OSS. 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 uma conta Alibaba Cloud não possuem nenhuma permissão por padrão. A conta Alibaba Cloud ou o administrador da conta deve conceder permissões de operação por meio de políticas do RAM ou Bucket Policy.
|
API |
Action |
Descrição |
|
PutBucketLogging |
|
Ativa o logging para um bucket. |
|
|
Ao ativar o logging de um bucket, se os logs forem gravados em outro bucket, essa permissão será necessária para o bucket de destino. |
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 Cabeçalhos comuns de requisição.
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 logging. Nós filhos: LoggingEnabled Nós pais: nenhum |
|
LoggingEnabled |
Container |
Este parâmetro é obrigatório ao ativar o logging. |
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 |
Este parâmetro é obrigatório ao ativar o logging. |
examplebucket |
Bucket que armazena os 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 |
Função com permissões para logging. 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 Cabeçalhos comuns de resposta.
Exemplos
Exemplos para buckets
-
Exemplo de requisição para ativar o logging
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 logging
Para desativar o logging 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 vector buckets
Ao especificar o
Hostpara um vector bucket, use o ID de região padrão da Alibaba Cloud (exemplo:cn-hangzhou). Não utilize o ID de região legado do OSS (exemplo:oss-cn-hangzhou) usado para buckets de uso geral.Exemplo de requisição para ativar o logging
PUT /?logging HTTP/1.1 Host: exampebucket-123***456.cn-hangzhou.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 obter 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 |
O bucket de source não existe. |
|
InvalidTargetBucketForLogging |
400 |
O bucket de source e o bucket de destino não pertencem ao mesmo data center. |
|
InvalidDigest |
400 |
O valor Content-MD5 do corpo da mensagem é inconsistente com o valor Content-MD5 do cabeçalho da requisição. |
|
MalformedXML |
400 |
O formato XML na requisição é inválido. |
|
InvalidTargetBucketForLogging |
403 |
O solicitante não é o proprietário do bucket de destino. |
|
AccessDenied |
403 |
O solicitante não é o proprietário do bucket de source. |