Google cloud storage 我需要将Blob的哪些部分存储在数据库中才能检索回文件?

Google cloud storage 我需要将Blob的哪些部分存储在数据库中才能检索回文件?,google-cloud-storage,Google Cloud Storage,我现在可以将文件存储在存储桶中: Blob Blob=storage.create( BlobInfo.newBuilder( 你的名字, Objects.requirennull(multipartFile.getOriginalFilename()) .build(), multipartFile.getBytes() ); 但我不确定我应该在自己的数据库中保存什么,以便能够检索回我的文件 现在,简单的方法是将URL存储在google\u bucket\u URL列中 然而,现在已经有了m

我现在可以将文件存储在存储桶中:

Blob Blob=storage.create(
BlobInfo.newBuilder(
你的名字,
Objects.requirennull(multipartFile.getOriginalFilename())
.build(),
multipartFile.getBytes()
);
但我不确定我应该在自己的数据库中保存什么,以便能够检索回我的文件

现在,简单的方法是将URL存储在
google\u bucket\u URL
列中

然而,现在已经有了
mediaLink
selfLink
——这两个链接看起来可能不会永远有效

我还可以存储桶和水滴id

Storage Storage=StorageOptions.getDefaultInstance().getService();
//Blob Blob=storage.create(…);
BlobId BlobId=BlobId.of(blob.getBucket(),blob.getName());
存储。获取(blobId);
但我不想猜测什么是“正确”的方式,而是想确定我在做什么


我一定是在文档中找不到它,但我找不到任何关于它的建议。

我建议您存储blob的完整URI
gs://bucket\u name/path/to/file
完整URI很重要。明天您可能需要将文件存储在AWS S3或本地,您必须确定用于检索文件内容的协议

当您拥有完整的GCS URI
gs://bucket\u name/path/to/file
时,分割很容易获得文件

//仅在第一次“/”字符相遇时分割一行,之前,将“gs://”替换为零
s:=strings.SplitN(strings.Replace(URI,“gs://”和“),“/”,1)
//那么你可以用这个
bucketName:=s[0]
路径文件:=s[1]
注意:这段代码(在Go中)很容易在任何语言中实现