[ 
https://issues.apache.org/jira/browse/NIFI-774?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14653836#comment-14653836
 ] 

ASF GitHub Bot commented on NIFI-774:
-------------------------------------

Github user danbress commented on a diff in the pull request:

    https://github.com/apache/nifi/pull/72#discussion_r36204722
  
    --- Diff: 
nifi/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/s3/DeleteS3Object.java
 ---
    @@ -0,0 +1,125 @@
    +/*
    + * Licensed to the Apache Software Foundation (ASF) under one or more
    + * contributor license agreements.  See the NOTICE file distributed with
    + * this work for additional information regarding copyright ownership.
    + * The ASF licenses this file to You under the Apache License, Version 2.0
    + * (the "License"); you may not use this file except in compliance with
    + * the License.  You may obtain a copy of the License at
    + *
    + *     http://www.apache.org/licenses/LICENSE-2.0
    + *
    + * Unless required by applicable law or agreed to in writing, software
    + * distributed under the License is distributed on an "AS IS" BASIS,
    + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    + * See the License for the specific language governing permissions and
    + * limitations under the License.
    + */
    +package org.apache.nifi.processors.aws.s3;
    +
    +import java.io.IOException;
    +import java.util.*;
    +import java.util.concurrent.TimeUnit;
    +
    +import com.amazonaws.AmazonClientException;
    +import com.amazonaws.services.s3.AmazonS3;
    +import com.amazonaws.services.s3.model.*;
    +import org.apache.nifi.annotation.behavior.*;
    +import org.apache.nifi.annotation.documentation.CapabilityDescription;
    +import org.apache.nifi.annotation.documentation.SeeAlso;
    +import org.apache.nifi.annotation.documentation.Tags;
    +import org.apache.nifi.components.PropertyDescriptor;
    +import org.apache.nifi.flowfile.FlowFile;
    +import org.apache.nifi.processor.ProcessContext;
    +import org.apache.nifi.processor.ProcessSession;
    +import org.apache.nifi.processor.util.StandardValidators;
    +
    +@SupportsBatching
    +@SeeAlso({PutS3Object.class})
    +@Tags({"Amazon", "S3", "AWS", "Archive", "Delete"})
    +@CapabilityDescription("Deletes FlowFiles on an Amazon S3 Bucket")
    +@DynamicProperty(name = "The name of a User-Defined Metadata field to add 
to the S3 Object",
    +        value = "The value of a User-Defined Metadata field to add to the 
S3 Object",
    +        description = "Allows user-defined metadata to be added to the S3 
object as key/value pairs",
    +        supportsExpressionLanguage = true)
    +@ReadsAttribute(attribute = "filename", description = "Uses the FlowFile's 
filename as the filename for the S3 object")
    +@WritesAttributes({
    +        @WritesAttribute(attribute = "s3.bucket", description = "The name 
of the S3 bucket"),
    +        @WritesAttribute(attribute = "s3.version", description = "The 
version of the S3 Object"),
    +        @WritesAttribute(attribute = "path", description = "The path of 
the file"),
    +})
    +public class DeleteS3Object extends AbstractS3Processor {
    +
    +    public static final PropertyDescriptor VERSION_ID = new 
PropertyDescriptor.Builder()
    +            .name("Version")
    +            .description("The Version of the Object to delete")
    +            .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
    +            .expressionLanguageSupported(true)
    +            .required(false)
    +            .build();
    +
    +    public static final List<PropertyDescriptor> properties = 
Collections.unmodifiableList(
    +            Arrays.asList(KEY, BUCKET, ACCESS_KEY, SECRET_KEY, 
CREDENTAILS_FILE, REGION, TIMEOUT,
    +                    FULL_CONTROL_USER_LIST, READ_USER_LIST, 
WRITE_USER_LIST, READ_ACL_LIST, WRITE_ACL_LIST, OWNER));
    +
    +    @Override
    +    protected List<PropertyDescriptor> getSupportedPropertyDescriptors() {
    +        return properties;
    +    }
    +
    +    @Override
    +    protected PropertyDescriptor 
getSupportedDynamicPropertyDescriptor(final String propertyDescriptorName) {
    +        return new PropertyDescriptor.Builder()
    +                .name(propertyDescriptorName)
    +                .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
    +                .expressionLanguageSupported(true)
    +                .dynamic(true)
    +                .build();
    +    }
    +
    +    public void onTrigger(final ProcessContext context, final 
ProcessSession session) {
    +        FlowFile flowFile = session.get();
    +        if (flowFile == null) {
    +            return;
    +        }
    +
    +        final long startNanos = System.nanoTime();
    +
    +        final String bucket = 
context.getProperty(BUCKET).evaluateAttributeExpressions(flowFile).getValue();
    +        final String key = 
context.getProperty(KEY).evaluateAttributeExpressions(flowFile).getValue();
    +        final String versionId = 
context.getProperty(VERSION_ID).evaluateAttributeExpressions(flowFile).getValue();
    +
    +        final AmazonS3 s3 = getClient();
    +        final FlowFile ff = flowFile;
    +        final GetObjectRequest request;
    +        if (versionId == null) {
    +            request = new GetObjectRequest(bucket, key);
    +        } else {
    +            request = new GetObjectRequest(bucket, key, versionId);
    +        }
    +
    +        final Map<String, String> attributes = new HashMap<>();
    --- End diff --
    
    An entry is added to this map, but the map is never used again.  What is 
the purpose of this map?


> Create a DeleteS3Object Processor
> ---------------------------------
>
>                 Key: NIFI-774
>                 URL: https://issues.apache.org/jira/browse/NIFI-774
>             Project: Apache NiFi
>          Issue Type: Task
>          Components: Extensions
>            Reporter: Mark Payne
>            Assignee: Yu Ishikawa
>




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to