gpt4 book ai didi

java - 我如何使用GAE上传谷歌云存储中的文件

转载 作者:行者123 更新时间:2023-11-30 04:33:46 25 4
gpt4 key购买 nike

在GAE中上传文件时,我可以使用如下代码,

 //here creating a blob store service
BlobstoreService blobstoreService = BlobstoreServiceFactory.getBlobstoreService();
//here declaring the datastore service
DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();
//creating entity
Entity emp = new Entity("Employee");
//set the property
emp.setProperty("First Name", fname);
emp.setProperty("Last Name", lname);
//storing the data in GAE
datastore.put(Employee);

现在,如果我需要在 Google 云存储中执行相同的文件上传操作,我可以设置存储桶并打开 channel ,如下所示,

//Creating file service
FileService fileService = FileServiceFactory.getFileService();

//setting bucket name,object name & type
GSFileOptionsBuilder optionsBuilder = new GSFileOptionsBuilder()
.setBucket(BUCKETNAME)
.setKey(FILENAME)
.setMimeType("text/html")
.setAcl("public_read")
.addUserMetadata("myfield1", "my field value");

//creating the new writable file
AppEngineFile writableFile =fileService.createNewGSFile(optionsBuilder.build());
//opening the lock and writing channel
boolean lock = false;
FileWriteChannel writeChannel = fileService.openWriteChannel(writableFile, lock);

此后我不知道如何将文件存储在 Google 云存储中。我引用了这个开发者页面Google Cloud Storage Java API Overview但它仅显示对对象的读取和写入而不上传文件。

请向我提出一个将文件上传到 Google 云存储的想法。

感谢您的帮助。

最佳答案

类似这样的事情:

UploadOptions uploadOptions = UploadOptions.Builder.withGoogleStorageBucketName("bucket");
String uploadUrl = blobstoreService.createUploadUrl("/on_upload_success", uploadOptions));

然后 POST 到该 url。但是,然后在 '/on_upload_success' 处理程序中,您将从 GS 获取文件的 BlobKey,而不是文件名(由于此错误 http://code.google.com/p/googleappengine/issues/detail?id=8337 )。因此,您只能使用 blobkey 从 GAE 读取该数据。

关于java - 我如何使用GAE上传谷歌云存储中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13984979/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com