【问题标题】:How to deploy an artifact into Amazon S3 with Maven?如何使用 Maven 将工件部署到 Amazon S3?
【发布时间】:2015-11-17 21:20:20
【问题描述】:

我正在尝试按照这些教程 (1,2) 来实现上述目标。但我仍然从 Maven 收到此错误:

INFO] Installing /home/valter/temp-workspace/document-engine/target/application-1.0.0.CI-SNAPSHOT.jar to /home/valter/.m2/repository/com/company-solutions/application/1.0.0.CI-SNAPSHOT/application-1.0.0.CI-SNAPSHOT.jar
[INFO] Installing /home/valter/temp-workspace/document-engine/pom.xml to /home/valter/.m2/repository/com/company-solutions/application/1.0.0.CI-SNAPSHOT/application-1.0.0.CI-SNAPSHOT.pom
[INFO] 
[INFO] --- maven-deploy-plugin:2.7:deploy (default-deploy) @ application ---
Downloading: s3://myrepo.company.solutions/snapshot/com/company-solutions/application/1.0.0.CI-SNAPSHOT/maven-metadata.xml
[WARNING] s3://myrepo.company.solutions/snapshot - Connection refused
[WARNING] Could not transfer metadata com.company-solutions:application:1.0.0.CI-SNAPSHOT/maven-metadata.xml from/to s3.snapshot (s3://myrepo.company.solutions/snapshot): Could not connect to repository
[INFO] Logged off - myrepo.company.solutions
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 01:31 min
[INFO] Finished at: 2015-11-16T18:36:26+01:00
[INFO] Final Memory: 181M/1289M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy (default-deploy) on project application: Failed to retrieve remote metadata com.company-solutions:application:1.0.0.CI-SNAPSHOT/maven-metadata.xml: Could not transfer metadata com.company-solutions:application:1.0.0.CI-SNAPSHOT/maven-metadata.xml from/to s3.snapshot (s3://myrepo.company.solutions/snapshot): Could not connect to repository: Status Code: 400, AWS Service: Amazon S3, AWS Request ID: 709B60A05E8E7062, AWS Error Code: InvalidRequest, AWS Error Message: The authorization mechanism you have provided is not supported. Please use AWS4-HMAC-SHA256. -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

这些是我的本地文件,~.m2/settings.xml(当然是虚构的值):

<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 
      http://maven.apache.org/xsd/settings-1.0.0.xsd">
    <servers>
        <server>
            <id>s3.site</id>
            <username>access_key</username>
            <password>private_key</password>
        </server>
        <server>
            <id>s3.release</id>
            <username>access_key</username>
            <password>private_key</password>
        </server>
        <server>
            <id>s3.snapshot</id>
            <username>access_key</username>
            <password>private_key</password>
        </server>
    </servers>
</settings>

还有我的 pom.xml

<project>
    <build>
        <extensions>
            <extension>
                <groupId>org.kuali.maven.wagons</groupId>
                <artifactId>maven-s3-wagon</artifactId>
                <version>1.2.1</version>
            </extension>
        </extensions>
        ...
    </build>
    <distributionManagement>
        <site>
            <id>s3.site</id>
            <url>s3://myrepo.company.solutions/site</url>
        </site>
        <repository>
            <id>s3.release</id>
            <url>s3://myrepo.company.solutions/release</url>
        </repository>
        <snapshotRepository>
            <id>s3.snapshot</id>
            <url>s3://myrepo.company.solutions/snapshot</url>
        </snapshotRepository>
    </distributionManagement>
...
</project>

我正在使用 Maven 3.3.3。

编辑 这是我的策略模拟器结果:

【问题讨论】:

  • s3://myrepo.company.solutions/snapshot - 连接被拒绝 - 您确定您使用的 IAM 用户具有相关的 S3 权限吗?或者您确定有问题的存储桶没有覆盖 IAM 策略中允许的权限的存储桶策略?
  • @mickzer 是的,我确定我的 IAM 用户有权执行该存储桶中的所有操作,并且我的存储桶目前没有任何政策。

标签: maven amazon-web-services amazon-s3 maven-3


【解决方案1】:

只是为了让你们知道发生了什么。 问题是我的存储桶区域是 Frankfurt,这需要来自 Amazon AWS 的最新版本身份验证,版本 4。据我所知,插件 aws-maven 不支持这个新版本现在的版本。所以解决方案是将我的存储桶移到另一个支持旧版本方案的区域,例如 US Standard。现在一切似乎都正常了!

【讨论】:

  • 正是发生在我身上的事情。顺便说一句,您是否构建了任何使用此私有 Maven 存储库的 Maven 项目?如果是这样,您在 pom.xml 中的“存储库”标签下使用了什么 url?谢谢!
猜你喜欢
  • 2018-06-28
  • 1970-01-01
  • 2010-12-16
  • 2014-10-07
  • 1970-01-01
  • 1970-01-01
  • 2011-06-29
  • 2020-06-15
  • 2016-10-07
相关资源
最近更新 更多