L'opération PutBucketLogging active la fonctionnalité de transfert des journaux pour un bucket. Cette fonction génère des fichiers de journalisation toutes les heures selon une convention de nommage fixe et écrit les journaux d'accès OSS dans le bucket spécifié.
Notes d'utilisation
L'autorisation
oss:PutBucketLoggingest requise pour activer la journalisation d'un bucket via l'opération PutBucketLogging. Pour plus d'informations, consultez la section Grant a custom policy.Le bucket source (génération des journaux) et le bucket de destination (stockage des journaux) peuvent être identiques ou distincts. Toutefois, le bucket de destination doit appartenir au même compte Alibaba Cloud et se trouver dans la même région que le bucket source.
-
OSS génère les journaux d'accès au bucket toutes les heures. Les requêtes effectuées au cours d'une heure donnée peuvent toutefois être enregistrées dans le journal de l'heure précédente ou suivante.
Pour plus d'informations sur les conventions de nommage des objets de journal et sur le format des journaux, consultez la section Logging.
-
Même après la désactivation de la journalisation, OSS continue de générer des objets de journal. Supprimez les objets de journal inutiles afin de réduire vos coûts de stockage.
Configurez des règles de cycle de vie pour supprimer régulièrement les objets de journal. Pour plus d'informations, consultez la section Lifecycle rules based on last modification time.
De nouveaux champs peuvent être ajoutés aux journaux OSS. Nous recommandons aux développeurs de prendre en compte les éventuels problèmes de compatibilité lors du développement d'outils de traitement des journaux.
Autorisations
Par défaut, un compte Alibaba Cloud dispose de toutes les autorisations. Les utilisateurs RAM ou les rôles RAM associés à un compte Alibaba Cloud ne disposent d'aucune autorisation par défaut. Le compte Alibaba Cloud ou l'administrateur du compte doit accorder les autorisations d'opération via des RAM policies ou une Bucket Policy.
|
API |
Action |
Description |
|
PutBucketLogging |
|
Active la journalisation pour un bucket. |
|
|
Si les journaux sont écrits dans un autre bucket lors de l'activation de la journalisation, cette autorisation est requise pour le bucket de destination. |
Syntaxe de la requête
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>
En-têtes de requête
Une requête PutBucketLogging contient uniquement des en-têtes de requête communs. Pour plus d'informations, consultez la section Common request headers.
Éléments de requête
Element | Type | Required | Example | Description |
BucketLoggingStatus | Container | Yes | N/A | Conteneur qui stocke les informations sur l'état de la journalisation. Nœuds enfants : LoggingEnabled Nœuds parents : aucun |
LoggingEnabled | Container | Ce paramètre est requis lorsque vous activez la journalisation. | N/A | Conteneur qui stocke les informations sur les journaux d'accès. Nœuds enfants : TargetBucket, TargetPrefix et LoggingRole Nœuds parents : BucketLoggingStatus |
TargetBucket | String | Ce paramètre est requis lorsque vous activez la journalisation. | examplebucket | Bucket qui stocke les journaux d'accès. Nœuds enfants : aucun Nœuds parents : BucketLoggingStatus et LoggingEnabled |
TargetPrefix | String | No | MyLog- | Préfixe des objets de journal enregistrés. Cet élément peut rester vide. Nœuds enfants : aucun Nœuds parents : BucketLoggingStatus et LoggingEnabled |
LoggingRole | String | No | AliyunOSSLoggingDefaultRole | Nom du rôle RAM qui autorise OSS à écrire les journaux, par exemple AliyunOSSLoggingDefaultRole. Spécifiez le nom du rôle RAM, et non son ARN. Nœuds enfants : aucun Nœud parent : BucketLoggingStatus.LoggingEnabled |
En-têtes de réponse
Tous les en-têtes de la réponse à une requête PutBucketLogging sont des en-têtes de réponse communs. Pour plus d'informations, consultez la section Common response headers.
Exemples
Exemples pour les buckets
-
Exemple de requête pour activer la journalisation
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>Exemple de réponse
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 -
Exemple de requête pour désactiver la journalisation
Pour désactiver la journalisation d'un bucket, envoyez uniquement un BucketLoggingStatus vide. Exemple :
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>Exemple de réponse
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: AliyunOSSExemples pour les buckets vectoriels
Lors de la spécification du
Hostpour un bucket vectoriel, utilisez l'ID de région Alibaba Cloud standard (exemple :cn-hangzhou). N'utilisez pas l'ancien ID de région OSS (exemple :oss-cn-hangzhou) utilisé pour les buckets polyvalents.Exemple de requête pour activer la journalisation
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" } } }Exemple de réponse
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
SDK OSS
Utilisez les SDK OSS pour les langages de programmation suivants afin d'appeler l'opération PutBucketLogging :
ossutil
Pour obtenir des informations sur la commande ossutil correspondant à l'opération PutBucketLogging, consultez la section put-bucket-logging.
Codes d'erreur
|
Error code |
HTTP status code |
Description |
|
NoSuchBucket |
404 |
Le message d'erreur indique que le bucket source n'existe pas. |
|
InvalidTargetBucketForLogging |
400 |
Le message d'erreur indique que le bucket source et le bucket de destination n'appartiennent pas au même centre de données. |
|
InvalidDigest |
400 |
Le message d'erreur indique que la valeur Content-MD5 du corps du message est incohérente avec la valeur Content-MD5 de l'en-tête de requête. |
|
MalformedXML |
400 |
Le message d'erreur indique que le format XML de la requête n'est pas valide. |
|
InvalidTargetBucketForLogging |
403 |
Le message d'erreur indique que le demandeur n'est pas le propriétaire du bucket de destination. |
|
AccessDenied |
403 |
Le message d'erreur indique que le demandeur n'est pas le propriétaire du bucket source. |