2011-10-10 5 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

메시지가 (단지이 경우에 허용 일시 중단)에 있었다 때 버전을 해제하려고합니다.