2011-10-10 6 views
1

Je tente d'activer le contrôle de version pour le compartiment Amazon S3 à l'aide de Java. Mais, je ne suis pas capable de faire. Je reçois une exceptionActivation de la gestion des versions dans le compartiment Amazon S3

"Exception Code d'état: 400, AWS Demande ID: DC53C8220CEC7D4C, AWS Code d'erreur: MalformedXML, AWS Message d'erreur: Le fichier XML que vous avez fourni n'a pas été bien formé ou n'a pas validé contre notre schéma publié , S3 Demande prolongée ID: qAdibjSkoFltjoYTFZSdTOnh8JXwZrxkjgrTcgaXqZYGIgVdbRxr8VXzwkO4ilaG "

quelqu'un peut-il s'il vous plaît signaler l'erreur dans le code. J'attache la partie du code responsable de l'activation du versioning de seau.

public void enableVersioning(String bucketName) { 
    SetBucketVersioningConfigurationRequest request = 
     new SetBucketVersioningConfigurationRequest(bucketName, 
     new BucketVersioningConfiguration("ENABLED")); 
    AmazonS3 s3 = new AmazonS3Client(credentials); // I have the credentials 
    s3.setBucketVersioningConfiguration(request); 
} 

Merci d'avance.

Répondre

1

Ils devraient être les mêmes, mais je voudrais utiliser BucketVersioningConfiguration.ENABLED au lieu de la chaîne littérale si j'étais vous. Faites un import static si vous pensez que cela encombre trop le code. (Qui sait, il pourrait même résoudre mystérieusement votre problème)

Juste fait à peu près exactement cela moi-même et cela a fonctionné, c'était la seule différence que j'ai pu trouver.

0

OhHiThere est correcte - vous devez utiliser la LITERAL:

SetBucketVersioningConfigurationRequest request = 
    new SetBucketVersioningConfigurationRequest(bucketName, 
    new BucketVersioningConfiguration(BucketVersioningConfiguration.ENABLED)); 

L'erreur est presque certainement parce que « Validé » n'est pas la même chose que BucketVersioningConfiguration.ENABLED (qui est défini comme « Activé »).

J'ai aussi vu cette erreur:

The XML you provided was not well-formed

un message en essayant de tourner versioning quand il a été mis sur (seulement une mise en veille est autorisé dans ce cas).

Questions connexes