Emit NotImplemented when setting XML ACLs

pull/102/merge
Andrew Gaul 2015-12-16 18:58:32 -08:00
rodzic d9b3753f49
commit ee55828375
2 zmienionych plików z 36 dodań i 0 usunięć

Wyświetl plik

@ -792,6 +792,14 @@ final class S3ProxyHandler extends AbstractHandler {
return;
}
// TODO: how to handle XML ACLs?
try (InputStream is = request.getInputStream()) {
int ch = is.read();
if (ch != -1) {
throw new S3Exception(S3ErrorCode.NOT_IMPLEMENTED);
}
}
blobStore.setBlobAccess(containerName, blobName, access);
}

Wyświetl plik

@ -44,6 +44,7 @@ import com.amazonaws.SDKGlobalConfiguration;
import com.amazonaws.auth.BasicAWSCredentials;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3Client;
import com.amazonaws.services.s3.model.AccessControlList;
import com.amazonaws.services.s3.model.AmazonS3Exception;
import com.amazonaws.services.s3.model.CompleteMultipartUploadRequest;
import com.amazonaws.services.s3.model.CompleteMultipartUploadResult;
@ -54,6 +55,7 @@ import com.amazonaws.services.s3.model.GetObjectRequest;
import com.amazonaws.services.s3.model.InitiateMultipartUploadRequest;
import com.amazonaws.services.s3.model.InitiateMultipartUploadResult;
import com.amazonaws.services.s3.model.ObjectMetadata;
import com.amazonaws.services.s3.model.Owner;
import com.amazonaws.services.s3.model.PartETag;
import com.amazonaws.services.s3.model.S3Object;
import com.amazonaws.services.s3.model.UploadPartRequest;
@ -294,6 +296,32 @@ public final class S3AwsSdkTest {
}
}
@Test
public void testUpdateBlobXmlAcls() throws Exception {
AmazonS3 client = new AmazonS3Client(awsCreds,
new ClientConfiguration().withSignerOverride("S3SignerType"));
client.setEndpoint(s3Endpoint.toString());
String blobName = "testUpdateBlobXmlAcls-blob";
ObjectMetadata metadata = new ObjectMetadata();
metadata.setContentLength(BYTE_SOURCE.size());
client.putObject(containerName, blobName, BYTE_SOURCE.openStream(),
metadata);
AccessControlList acl = new AccessControlList();
Owner owner = new Owner();
owner.setId("id");
owner.setDisplayName("display-name");
acl.setOwner(owner);
try {
client.setObjectAcl(containerName, blobName, acl);
Fail.failBecauseExceptionWasNotThrown(AmazonS3Exception.class);
} catch (AmazonS3Exception e) {
assertThat(e.getErrorCode()).isEqualTo("NotImplemented");
}
}
private static final class NullX509TrustManager
implements X509TrustManager {
@Override