@Override public SetBucketAnalyticsConfigurationResult setBucketAnalyticsConfiguration( SetBucketAnalyticsConfigurationRequest setBucketAnalyticsConfigurationRequest) throws AmazonServiceException, SdkClientException { setBucketAnalyticsConfigurationRequest = beforeClientExecution(setBucketAnalyticsConfigurationRequest); rejectNull(setBucketAnalyticsConfigurationRequest, "The request cannot be null"); final String bucketName = assertStringNotEmpty( setBucketAnalyticsConfigurationRequest.getBucketName(), "BucketName"); final AnalyticsConfiguration analyticsConfiguration = assertNotNull( setBucketAnalyticsConfigurationRequest.getAnalyticsConfiguration(), "Analytics Configuration"); final String id = assertNotNull(analyticsConfiguration.getId(), "Analytics Id"); Request<SetBucketAnalyticsConfigurationRequest> request = createRequest(bucketName, null, setBucketAnalyticsConfigurationRequest, HttpMethodName.PUT); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "PutBucketAnalyticsConfiguration"); request.addParameter("analytics", null); request.addParameter("id", id); byte[] bytes = bucketConfigurationXmlFactory.convertToXmlByteArray(analyticsConfiguration); request.addHeader("Content-Length", String.valueOf(bytes.length)); request.addHeader("Content-Type", "application/xml"); request.setContent(new ByteArrayInputStream(bytes)); return invoke(request, new Unmarshallers.SetBucketAnalyticsConfigurationUnmarshaller(), bucketName, null); }
addParameterIfNotNull(xml, "Id", config.getId()); writeAnalyticsFilter(xml, config.getFilter()); writeStorageClassAnalysis(xml, config.getStorageClassAnalysis());
@Override public SetBucketAnalyticsConfigurationResult setBucketAnalyticsConfiguration( SetBucketAnalyticsConfigurationRequest setBucketAnalyticsConfigurationRequest) throws AmazonServiceException, AmazonClientException { assertParameterNotNull(setBucketAnalyticsConfigurationRequest, "The request cannot be null"); final String bucketName = assertStringNotEmpty( setBucketAnalyticsConfigurationRequest.getBucketName(), "BucketName"); final AnalyticsConfiguration analyticsConfiguration = assertNotNull( setBucketAnalyticsConfigurationRequest.getAnalyticsConfiguration(), "Analytics Configuration"); final String id = assertNotNull(analyticsConfiguration.getId(), "Analytics Id"); final Request<SetBucketAnalyticsConfigurationRequest> request = createRequest(bucketName, null, setBucketAnalyticsConfigurationRequest, HttpMethodName.PUT); request.addParameter("analytics", null); request.addParameter("id", id); final byte[] bytes = bucketConfigurationXmlFactory.convertToXmlByteArray(analyticsConfiguration); request.addHeader("Content-Length", String.valueOf(bytes.length)); request.addHeader("Content-Type", "application/xml"); request.setContent(new ByteArrayInputStream(bytes)); return invoke(request, new Unmarshallers.SetBucketAnalyticsConfigurationUnmarshaller(), bucketName, null); }
/** * Converts the specified * {@link com.amazonaws.services.s3.model.analytics.AnalyticsConfiguration} * object to an XML fragment that can be sent to Amazon S3. * * @param config The * {@link com.amazonaws.services.s3.model.analytics.AnalyticsConfiguration} */ /* * <AnalyticsConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> * <Id>XXX</Id> <Filter> <And> <Prefix>documents/</Prefix> <Tag> * <Key>foo</Key> <Value>bar</Value> </Tag> </And> </Filter> * <StorageClassAnalysis> <DataExport> * <OutputSchemaVersion>1</OutputSchemaVersion> <Destination> * <S3BucketDestination> <Format>CSV</Format> * <BucketAccountId>123456789</BucketAccountId> * <Bucket>destination-bucket</Bucket> <Prefix>destination-prefix</Prefix> * </S3BucketDestination> </Destination> </DataExport> * </StorageClassAnalysis> </AnalyticsConfiguration> */ public byte[] convertToXmlByteArray(AnalyticsConfiguration config) throws AmazonClientException { final XmlWriter xml = new XmlWriter(); xml.start("AnalyticsConfiguration", "xmlns", Constants.XML_NAMESPACE); addParameterIfNotNull(xml, "Id", config.getId()); writeAnalyticsFilter(xml, config.getFilter()); writeStorageClassAnalysis(xml, config.getStorageClassAnalysis()); xml.end(); return xml.getBytes(); }
@Test public void getResponse_unmarshalls_properly() throws Exception { AnalyticsConfiguration configuration = parseGetAnalyticsConfigurationResponse(GET_RESPONSE).getAnalyticsConfiguration(); AnalyticsFilter filter = configuration.getFilter(); StorageClassAnalysis storageClassAnalysis = configuration.getStorageClassAnalysis(); assertEquals("analytics-id", configuration.getId()); assertNotNull(filter); List<AnalyticsFilterPredicate> operands = ((AnalyticsAndOperator) filter.getPredicate()).getOperands(); assertEquals(2, operands.size()); assertEquals("documents/", ((AnalyticsPrefixPredicate) operands.get(0)).getPrefix()); assertEquals("foo", ((AnalyticsTagPredicate) operands.get(1)).getTag().getKey()); assertEquals("bar", ((AnalyticsTagPredicate) operands.get(1)).getTag().getValue()); assertEquals(StorageClassAnalysisSchemaVersion.V_1.toString(), storageClassAnalysis.getDataExport().getOutputSchemaVersion()); AnalyticsS3BucketDestination s3BucketDestination = storageClassAnalysis.getDataExport().getDestination().getS3BucketDestination(); assertEquals(AnalyticsS3ExportFileFormat.CSV.toString(), s3BucketDestination.getFormat()); assertEquals("123456789", s3BucketDestination.getBucketAccountId()); assertEquals("arn:aws:s3:::destination-bucket", s3BucketDestination.getBucketArn()); assertEquals("destination-prefix", s3BucketDestination.getPrefix()); }
StorageClassAnalysis storageClassAnalysis = configuration.getStorageClassAnalysis(); assertEquals("XXX", configuration.getId()); assertNotNull(filter); List<AnalyticsFilterPredicate> operands = ((AnalyticsAndOperator) filter.getPredicate()).getOperands(); assertEquals("YYY", configuration.getId()); assertEquals("prefix", ((AnalyticsPrefixPredicate) configuration.getFilter().getPredicate()).getPrefix()); assertEquals("V_2", storageClassAnalysis.getDataExport().getOutputSchemaVersion());
@Override public SetBucketAnalyticsConfigurationResult setBucketAnalyticsConfiguration( SetBucketAnalyticsConfigurationRequest setBucketAnalyticsConfigurationRequest) throws AmazonServiceException, AmazonClientException { assertParameterNotNull(setBucketAnalyticsConfigurationRequest, "The request cannot be null"); final String bucketName = assertStringNotEmpty( setBucketAnalyticsConfigurationRequest.getBucketName(), "BucketName"); final AnalyticsConfiguration analyticsConfiguration = assertNotNull( setBucketAnalyticsConfigurationRequest.getAnalyticsConfiguration(), "Analytics Configuration"); final String id = assertNotNull(analyticsConfiguration.getId(), "Analytics Id"); final Request<SetBucketAnalyticsConfigurationRequest> request = createRequest(bucketName, null, setBucketAnalyticsConfigurationRequest, HttpMethodName.PUT); request.addParameter("analytics", null); request.addParameter("id", id); final byte[] bytes = bucketConfigurationXmlFactory.convertToXmlByteArray(analyticsConfiguration); request.addHeader("Content-Length", String.valueOf(bytes.length)); request.addHeader("Content-Type", "application/xml"); request.setContent(new ByteArrayInputStream(bytes)); return invoke(request, new Unmarshallers.SetBucketAnalyticsConfigurationUnmarshaller(), bucketName, null); }
@Override public SetBucketAnalyticsConfigurationResult setBucketAnalyticsConfiguration( SetBucketAnalyticsConfigurationRequest setBucketAnalyticsConfigurationRequest) throws AmazonServiceException, SdkClientException { setBucketAnalyticsConfigurationRequest = beforeClientExecution(setBucketAnalyticsConfigurationRequest); rejectNull(setBucketAnalyticsConfigurationRequest, "The request cannot be null"); final String bucketName = assertStringNotEmpty( setBucketAnalyticsConfigurationRequest.getBucketName(), "BucketName"); final AnalyticsConfiguration analyticsConfiguration = assertNotNull( setBucketAnalyticsConfigurationRequest.getAnalyticsConfiguration(), "Analytics Configuration"); final String id = assertNotNull(analyticsConfiguration.getId(), "Analytics Id"); Request<SetBucketAnalyticsConfigurationRequest> request = createRequest(bucketName, null, setBucketAnalyticsConfigurationRequest, HttpMethodName.PUT); request.addParameter("analytics", null); request.addParameter("id", id); byte[] bytes = bucketConfigurationXmlFactory.convertToXmlByteArray(analyticsConfiguration); request.addHeader("Content-Length", String.valueOf(bytes.length)); request.addHeader("Content-Type", "application/xml"); request.setContent(new ByteArrayInputStream(bytes)); return invoke(request, new Unmarshallers.SetBucketAnalyticsConfigurationUnmarshaller(), bucketName, null); }
/** * Converts the specified * {@link com.amazonaws.services.s3.model.analytics.AnalyticsConfiguration} * object to an XML fragment that can be sent to Amazon S3. * * @param config The * {@link com.amazonaws.services.s3.model.analytics.AnalyticsConfiguration} */ /* * <AnalyticsConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> * <Id>XXX</Id> <Filter> <And> <Prefix>documents/</Prefix> <Tag> * <Key>foo</Key> <Value>bar</Value> </Tag> </And> </Filter> * <StorageClassAnalysis> <DataExport> * <OutputSchemaVersion>1</OutputSchemaVersion> <Destination> * <S3BucketDestination> <Format>CSV</Format> * <BucketAccountId>123456789</BucketAccountId> * <Bucket>destination-bucket</Bucket> <Prefix>destination-prefix</Prefix> * </S3BucketDestination> </Destination> </DataExport> * </StorageClassAnalysis> </AnalyticsConfiguration> */ public byte[] convertToXmlByteArray(AnalyticsConfiguration config) throws AmazonClientException { final XmlWriter xml = new XmlWriter(); xml.start("AnalyticsConfiguration", "xmlns", Constants.XML_NAMESPACE); addParameterIfNotNull(xml, "Id", config.getId()); writeAnalyticsFilter(xml, config.getFilter()); writeStorageClassAnalysis(xml, config.getStorageClassAnalysis()); xml.end(); return xml.getBytes(); }
addParameterIfNotNull(xml, "Id", config.getId()); writeAnalyticsFilter(xml, config.getFilter()); writeStorageClassAnalysis(xml, config.getStorageClassAnalysis());