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 URIgs://bucket\u name/path/to/file
时,分割很容易获得文件
//仅在第一次“/”字符相遇时分割一行,之前,将“gs://”替换为零
s:=strings.SplitN(strings.Replace(URI,“gs://”和“),“/”,1)
//那么你可以用这个
bucketName:=s[0]
路径文件:=s[1]
注意:这段代码(在Go中)很容易在任何语言中实现