java - 从 Google Cloud Storage 检索文件

标签 java google-app-engine

在我的项目中,我需要能够在服务器上上传一些文件并按名称获取它。我想将它们保存在 Google Cloud Storage 我的提交表单如下所示

<%
    UploadOptions op = UploadOptions.Builder.withGoogleStorageBucketName("myDefaultBucket");
%>
<form action="<%= blobstoreService.createUploadUrl("/upload", op) %>" method="post" enctype="multipart/form-data">
    <input type="file" name="fileToUpload">
    <input type="submit" value="submit">
</form>

但是在 Google Cloud Storage 中的该文件的名称与我上传它时的名称不同(假设我上传了文件 file.txt ,它的名称存储桶中的内容是L2FwcGhvc3RpbmdfcHJvZC9ibG9icy9BRW5C...)。

基本上,我只需要在服务器上保存一些文件 file.txt ,然后通过其名称 file.txt 获取它。

最佳答案

您可以将此表单发布到您自己的 servlet,而不是直接上传到 Cloud Storage。然后,您使用您的存储桶和提交的文件的名称创建一个文件名,并将该文件保存到 Cloud Storage。

private final GcsService gcsService =
GcsServiceFactory.createGcsService(RetryParams.getDefaultInstance());

GcsOutputChannel outputChannel =
gcsService.createOrReplace(GcsFilename(bucketName, uploadedFileName), GcsFileOptions.getDefaultInstance());

关于java - 从 Google Cloud Storage 检索文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34268861/

相关文章:

java - 在测试中模拟可变网络条件

python - 任务队列和非幂等任务

java - StreamSupplier 的 IllegalStateException

java - SocketException 连接重置

java - 具有短名称的字段的默认 Jackson 命名策略

python - 谷歌应用引擎图像 GIF execute_transforms LargeImageError

java - 如何修复 "com.google.cloud.tools.appengine.AppEngineException: java.nio.file.NoSuchFileException: ...\exploded-{project}\WEB-INF\appengine-web.xml"

java - Jetty:找出哪个连接器用于传入请求

Java : access project directory outside src

google-app-engine - 我需要帮助更新此 Golang 代码。里面的方法都弃用了,我对cloud datastore不是很了解