【发布时间】:2014-01-06 04:20:29
【问题描述】:
我想将我的项目存储库中的静态内容上传到 Amazon S3(简单存储服务),其中包括包含在 src/main/webapp 中的所有内容。为此我需要使用 maven 插件 在构建时自动上传此类资源。
在研究时,我偶然发现了一些这样的 maven 插件:
- s3-upload-maven-plugin(参见文档here) - 一次只支持单个文件上传
- s3-static-uploader(请参阅文档 here)- 令人兴奋的前景,但可用的功能很少
- aws-parent(请参阅文档 here)- 没有发布官方 maven 插件,但与 s3-static-uploader 共享接近,我无法使其工作
- jetS3t(参见发布文档here)
我已经尝试了所有这些插件,但每次都未能实现我的目标。
我接近实现我的目标是在使用 s3-static-uploader 时,我的 pom 看起来像
<plugin>
<groupId>io.pst.mojo</groupId>
<artifactId>s3-static-uploader-plugin</artifactId>
<version>1.1</version>
<configuration>
<accessKey>${aws.accessKey}</accessKey>
<secretKey>${aws.secretKey}</secretKey>
<bucketName>${aws.bucketName}</bucketName>
<refreshExpiredObjects>true</refreshExpiredObjects>
<includes>
<include>
<bind>
<!-- Could be path expressions or reg. expressions -->
<pattern>%regex[([^\s]+(\.(?i)(jpg|png|gif|bmp|tif|pdf|swf|eps))$)]</pattern>
<metadataId>static</metadataId>
</bind>
</include>
<include>
<bind>
<pattern>%regex[([^\s]+(\.(?i)(css|js))$)]</pattern>
<metadataId>volatile</metadataId>
</bind>
</include>
<include>
<bind>
<!-- Extension less files -->
<pattern>%regex[^[^.]+$]</pattern>
<metadataId>volatile-naked</metadataId>
</bind>
</include>
</includes>
<excludes>
<exclude>WEB-INF/.*</exclude>
</excludes>
<metadatas>
<metadata>
<id>static</id>
<cacheControl>public</cacheControl>
<contentEncoding>plain</contentEncoding>
<contentType>text/html</contentType>
<cannedAcl>PublicRead</cannedAcl>
</metadata>
<metadata>
<id>static-longlived</id>
<cacheControl>public</cacheControl>
<contentEncoding>plain</contentEncoding>
<contentType>text/html</contentType>
<cannedAcl>PublicRead</cannedAcl>
</metadata>
<metadata>
<id>volatile</id>
<cacheControl>private</cacheControl>
<contentEncoding>plain</contentEncoding>
<contentType>text/html</contentType>
<cannedAcl>PublicRead</cannedAcl>
</metadata>
<metadata>
<id>volatile-naked</id>
<cacheControl>private</cacheControl>
<contentEncoding>plain</contentEncoding>
<contentType>text/html</contentType>
<cannedAcl>PublicRead</cannedAcl>
</metadata>
</metadatas>
</configuration>
<executions>
<execution>
<goals>
<goal>upload</goal>
</goals>
</execution>
</executions>
</plugin>
但是在 maven install 上只上传了一个文件,它显示构建失败,下一个文件的消息如下:
未能执行目标 io.pst.mojo:s3-static-uploader-plugin:1.1:upload (default-cli) on 项目 sbworkbenchnavigation-portlet:无法处理文件 /home/pawal/sbworkbench/portlets/sbworkbenchnavigation-portlet/src/main/webapp/css/main.css: 拒绝访问 ->
并且在下一个 maven install 上它显示下一个文件的相同错误。并且在所有文件在同一进程中迭代之后,构建显示成功消息。
问题:
- 我做错了什么吗?我已按照插件文档进行操作 准确地说(我认为)。
- 是否有任何其他 maven 插件可用于将静态内容上传到 Amazion s3 服务器?
【问题讨论】:
标签: java maven file-upload amazon-web-services amazon-s3