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

09-10 13:30
查看更多