gpt4 book ai didi

google-app-engine - 从 GAE createUploadUrl 访问底层 Google Cloud Storage 对象

转载 作者:太空宇宙 更新时间:2023-11-03 15:30:02 25 4
gpt4 key购买 nike

我正在尝试将用户上传的照片存储在 Google Cloud Storage 中,但遇到调用问题:

blobStoreService.createUploadUrl(...)

我需要跟踪哪个用户 ID 与上传的文件相关联。如果用户的 ID 是 1234,我需要将其作为元数据存储在 Cloud Storage 文件中。

我可以在直接创建云存储文件时添加元数据:

GSFileOptionsBuilder optionsBuilder = new GSFileOptionsBuilder()
.setBucket("myBucket")
.setKey(key) // path...
.addUserMetadata("userId", "1234");

但我真的想使用 GAE 提供的 BlobStoreService.createUploadUrl(...) 因为它支持比上面这段代码可以处理的更大的文件。是否可以使用 createUploadUrl 指定元数据?或者甚至可以找出创建了哪个谷歌存储 key /文件名?


更新我已经从上传回调 serlvet 中获得了 blobKey。但是,我找不到将元数据添加到与此 blobKey 关联的 Google 存储 文件的方法。至少在本地,它认为它是一个 BlobStore 条目,而不是一个 GS 文件

    // get the key:
Map<String, List<BlobKey>> blobKeysFromPost=BlobstoreServiceFactory.getBlobstoreService().getUploads(request);

// pull out the blobKey generated from the recently submitted POST
BlobKey blobKey = ...

// Now how do I access the cloud storage entry for this key? I tried:
AppEngineFile file = FileServiceFactory.getFileService().getBlobFile(blobKey);

// But this file locally returns "blobstore":
file.getFileSystem().getName(); // Should be GS.

最佳答案

我认为这是一个错误,Google 存储中的文件上传被赋予 BlobKeys,表示它们在 BlobStore 中。在不知道生成的文件名的情况下,我们无法在 GS 中与上传的文件进行交互。例如,我们不能在文件上添加元数据、更改 ACL、删除等...

我在 GAE 跟踪器中打开了这个问题: http://code.google.com/p/googleappengine/issues/detail?id=8337

关于google-app-engine - 从 GAE createUploadUrl 访问底层 Google Cloud Storage 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13061368/

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