Получение базы 64 строки файла gcs - PullRequest
0 голосов
/ 08 октября 2018

Я хотел бы знать, предоставляет ли firebase (gcs) способ загрузки строки base64 файла.Я хотел бы передать это как ответ API в Java.

Что бы я ни искал, я обнаружил, что gcs отвечает обратно blob.Я хочу преобразовать этот BLOB-объект в строку Base64.Но import com.google.cloud.storage.Blob не поддерживает

blob.getBytes()

Любая помощь будет высоко оценена.

1 Ответ

0 голосов
/ 08 октября 2018

Вы можете использовать следующий код для загрузки содержимого файла 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 следуйте этому ссылка .

Надеюсь, это поможет

...