在我的项目中,我需要能够在服务器上上传一些文件并按名称获取它。我想将它们保存在 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/