【问题标题】:Getting base 64 String of file gcs获取文件 gcs 的 base 64 字符串
【发布时间】:2019-03-13 04:02:24
【问题描述】:
我想知道 firebase(gcs) 是否提供下载文件的 base64 字符串的方法。我想将其作为 Java 中的 API 响应传递。
无论我搜索过什么,我发现 gcs 响应了 blob。我想将此 blob 转换为 base64 字符串。但是import com.google.cloud.storage.Blob不支持
blob.getBytes()
任何帮助将不胜感激。
【问题讨论】:
标签:
download
base64
blob
google-cloud-storage
【解决方案1】:
您可以使用以下代码下载 Google Cloud Storage 文件的内容,然后将该内容编码为 Base64:
package com.example.storage;
import com.google.cloud.storage.Blob;
import com.google.cloud.storage.BlobId;
import com.google.cloud.storage.Storage;
import com.google.cloud.storage.StorageOptions;
import com.google.cloud.storage.Blob.BlobSourceOption;
import java.util.Arrays;
import org.apache.commons.codec.binary.Base64;
public class EncodingSample {
public static void main(String... args) throws Exception {
// Instantiates a client
Storage storage = StorageOptions.getDefaultInstance().getService();
Blob blob = storage.get(BlobId.of("your-bucket", "your-object"));
System.out.printf("Data: %s %n", blob.toString());
// Get object content
byte[] content = blob.getContent(BlobSourceOption.generationMatch());
// byte array to string
String s = new String(content);
// Bytes values
System.out.printf("Array: %s %n", Arrays.toString(content));
// Object content in string
System.out.printf("Text: %s %n", s);
// String encoded to Base64
byte[] encodedBytes = Base64.encodeBase64(s.getBytes());
// Base64 bytes
System.out.printf("encodedBytes: %s %n", Arrays.toString(encodedBytes));
// Base64 encoded string
System.out.println("String encoded: " + new String(encodedBytes));
}
}
有关getContent 方法的更多信息,请关注此link。
希望对你有帮助