Java 我可以使用gradle在google云存储上部署文件吗?
我正在Google App Engine上运行一个应用程序,我的git存储库中有一些文件需要复制到云存储中,以供应用程序访问 现在,我在云存储中手动复制它们,但我希望找到一种方法,在启动应用程序时将它们与应用程序一起自动部署Java 我可以使用gradle在google云存储上部署文件吗?,java,google-app-engine,gradle,google-cloud-storage,Java,Google App Engine,Gradle,Google Cloud Storage,我正在Google App Engine上运行一个应用程序,我的git存储库中有一些文件需要复制到云存储中,以供应用程序访问 现在,我在云存储中手动复制它们,但我希望找到一种方法,在启动应用程序时将它们与应用程序一起自动部署 gradle appengineUpdate 甚至定义一个新的梯度任务 gradle storageUpdate 任何人都有同样的需求,并且找到了一种可行的方法吗?经过多次尝试,我将发布我构建、测试、完善并在生产中使用的解决方案 首先,我创建了一个新的Java类,它使用
gradle appengineUpdate
甚至定义一个新的梯度任务
gradle storageUpdate
任何人都有同样的需求,并且找到了一种可行的方法吗?经过多次尝试,我将发布我构建、测试、完善并在生产中使用的解决方案 首先,我创建了一个新的Java类,它使用存储、ACL和BlobInfo处理文件上传
Storage storage = StorageOptions.builder()
.authCredentials(AuthCredentials.createForJson(new FileInputStream(authFile)))
.projectId(projectId)
.build()
.service();
List<Acl> aclList = new ArrayList<>();
aclList.add(Acl.of(Acl.User.ofAllUsers(), Acl.Role.READER)); // shared publicly
BlobInfo blobInfo = BlobInfo.builder(blobId)
.acl(aclList)
.build();
storage.create(blobInfo, new FileInputStream(template));
注意,如果我想上传一个文件,这就足够了
gradle upload -Pfile=<filename>
你可以创建一个这样的单元测试,让gradle在发布/打包时执行你的单元测试?这是一个好主意@konqi!我还没有任何gradle激活的单元测试,但我认为这样做会成功。你曾经用过类似的方法吗?我用过,但我用的是maven,所以我不会对gradle有太大的帮助(因此是一个评论,而不是一个答案)。定义一个单独的任务将是更好的解决方案,但也需要更多的努力-但是您可以使用单元测试定义一个任务,并将这两种方法结合起来…我的最终目标是让一些东西自动复制这些文件,然后忘记它。。。因此,我认为我将编写一个解决方案来实现这一点,而无需定义新任务。再次感谢!
gradle upload -Pfile=<filename>
tasks.getByName('processResources').dependsOn(upload)