[ https://issues.apache.org/jira/browse/HADOOP-19050?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17823548#comment-17823548 ]
ASF GitHub Bot commented on HADOOP-19050: ----------------------------------------- steveloughran commented on code in PR #6507: URL: https://github.com/apache/hadoop/pull/6507#discussion_r1512593751 ########## hadoop-project/pom.xml: ########## @@ -1976,6 +1976,30 @@ <artifactId>log4j-web</artifactId> <version>${log4j2.version}</version> </dependency> + <dependency> + <groupId>software.amazon.s3.accessgrants</groupId> + <artifactId>aws-s3-accessgrants-java-plugin</artifactId> + <version>2.0.0</version> + <scope>provided</scope> + <exclusions> + <exclusion> + <groupId>software.amazon.awssdk</groupId> + <artifactId>*</artifactId> + </exclusion> + <exclusion> + <groupId>com.github.ben-manes.caffeine</groupId> + <artifactId>*</artifactId> + </exclusion> + <exclusion> + <groupId>org.apache.logging.log4j</groupId> + <artifactId>*</artifactId> + </exclusion> + <exclusion> + <groupId>org.assertj</groupId> Review Comment: this should really be scoped as testing in the module itself... ########## hadoop-tools/hadoop-aws/src/main/java/org/apache/hadoop/fs/s3a/DefaultS3ClientFactory.java: ########## @@ -401,4 +409,33 @@ private static Region getS3RegionFromEndpoint(final String endpoint, return Region.of(AWS_S3_DEFAULT_REGION); } + public static <BuilderT extends S3BaseClientBuilder<BuilderT, ClientT>, ClientT> void + applyS3AccessGrantsConfigurations(BuilderT builder, Configuration conf) { + boolean s3agEnabled = conf.getBoolean(AWS_S3_ACCESS_GRANTS_ENABLED, false); + if (!s3agEnabled){ + LOG.debug("S3 Access Grants plugin is not enabled."); + return; + } + try { + LOG_S3AG_ENABLED.info("S3 Access Grants plugin is enabled."); + Class s3agUtil = Class.forName(S3AG_UTIL_CLASSNAME); + Method applyS3agConfig = + s3agUtil.getMethod("applyS3AccessGrantsConfigurations", S3BaseClientBuilder.class, Configuration.class); + applyS3agConfig.invoke(null, builder, conf); + } catch (ClassNotFoundException e) { + LOG.debug( + "Class {} is not found exception: {}.", + S3AG_UTIL_CLASSNAME, + e.getStackTrace() Review Comment: 1. pass in e and let the logger handle the rest. 2. use multiple classes in the catch statement to avoid duplication/maintenance costs ########## hadoop-tools/hadoop-aws/src/main/java/org/apache/hadoop/fs/s3a/impl/S3AccessGrantsUtil.java: ########## @@ -0,0 +1,77 @@ +/* + * 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.hadoop.fs.s3a.impl; + +import org.apache.hadoop.conf.Configuration; Review Comment: nit: import ordering. I will keep complaining about this on new classes, so learn them and we will both save time. There's a style file for intellij somewhere to help ########## hadoop-tools/hadoop-aws/src/site/markdown/tools/hadoop-aws/s3_access_grants.md: ########## @@ -0,0 +1,61 @@ +<!--- + Licensed 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. See accompanying LICENSE file. +--> + +# S3 Access Grants + +<! > Add S3 Access Grants Support in S3A > ----------------------------------- > > Key: HADOOP-19050 > URL: https://issues.apache.org/jira/browse/HADOOP-19050 > Project: Hadoop Common > Issue Type: New Feature > Components: fs/s3 > Affects Versions: 3.4.0 > Reporter: Jason Han > Assignee: Jason Han > Priority: Minor > Labels: pull-request-available > > Add support for S3 Access Grants > (https://aws.amazon.com/s3/features/access-grants/) in S3A. -- This message was sent by Atlassian Jira (v8.20.10#820010) --------------------------------------------------------------------- To unsubscribe, e-mail: common-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-issues-h...@hadoop.apache.org