2011-10-10 51 views
1

我試圖啓用使用Java的Amazon S3存儲桶的版本控制。但是,我無法做到。我得到一個異常在Amazon S3存儲桶中啓用版本控制

異常狀態代碼:400,AWS請求ID:DC53C8220CEC7D4C,AWS 錯誤代碼:MalformedXML,AWS錯誤消息:您提供的XML是沒有很好地形成或沒有驗證對我們發佈的架構,S3擴展請求ID:qAdibjSkoFltjoYTFZSdTOnh8JXwZrxkjgrTcgaXqZYGIgVdbRxr8VXzwkO4ilaG

有人可以請在代碼中指出錯誤。我附上負責啓用存儲桶版本控制的代碼部分。

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); 
} 

在此先感謝。

回答

1

它們應該是相同的,但如果我是你,我會使用BucketVersioningConfiguration.ENABLED而不是字符串字面值。如果你認爲它太混亂了代碼,請做一個import static。 (誰知道,它甚至可能會神祕地解決你的問題)

只是做了很多這個我自己,它的工作,這是我能找到的唯一區別。

0

OhHiThere是正確的 - 你應該使用文字:

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

誤差幾乎可以肯定,因爲「有效」是不一樣的BucketVersioningConfiguration.ENABLED(其定義爲「已啓用」)。

我也看到了這個錯誤:

The XML you provided was not well-formed

消息試圖把版本關閉時,它已經對(只暫停允許在這種情況下)。

相關問題