Codificação Base64

Ao enviar arquivos de documentos para a API Document AI, é possível enviar dados diretamente no campo RawDocument.content com processamento on-line apenas se o arquivo tiver 20 MB ou menos. O arquivo de entrada estará em formato binário, que precisa ser codificado antes de ser enviado para a Document AI.

Se o arquivo de entrada exceder os limites de processamento on-line, ele precisará ser armazenado em um bucket do Cloud Storage para ser enviado para processamento, o que não exige codificação. Consulte a documentação sobre processamento em lote para mais detalhes.

Como usar a linha de comando

Em uma solicitação gRPC, é possível simplesmente gravar os dados binários diretamente. No entanto, JSON é usado ao fazer uma solicitação REST. Como JSON é um formato de texto que não aceita diretamente dados binários, você precisa converter esses dados em texto usando a codificação Base64.

A maioria dos ambientes de desenvolvimento contém um utilitário base64 nativo para codificar um binário em dados de texto ASCII. Para codificar um arquivo, faça o seguinte:

Linux

Codifique o arquivo de áudio usando a ferramenta de linha de comando base64 e evite a quebra automática de linha usando a flag -w 0:

base64 INPUT_FILE -w 0 > OUTPUT_FILE

macOS

Codifique o arquivo usando a ferramenta de linha de comando base64:

base64 -i INPUT_FILE -o OUTPUT_FILE

Windows

Codifique o arquivo usando a ferramenta Base64.exe:

Base64.exe -e INPUT_FILE > OUTPUT_FILE

PowerShell

Codifique o arquivo usando o método Convert.ToBase64String:

[Convert]::ToBase64String([IO.File]::ReadAllBytes("./INPUT_FILE")) > OUTPUT_FILE

Crie um arquivo de solicitação JSON, incluindo os dados codificados em Base64:

JSON

{
  "skipHumanReview": skipHumanReview,
  "rawDocument": {
    "mimeType": "MIME_TYPE",
    "content": "BASE64_ENCODED_DATA"
  },
  "fieldMask": "FIELD_MASK"
}

Como usar bibliotecas de cliente

Incorporar dados binários de áudio em solicitações por meio de editores de texto não é recomendado nem prático. Na realidade, você vai incorporar arquivos com codificação Base64 no código do cliente. Todas as linguagens de programação disponíveis têm mecanismos integrados para conteúdos com codificação Base64.

Python

# Import the base64 encoding library.
import base64

# Pass the image data to an encoding function.
def encode_image(image):
    with open(image, "rb") as image_file:
        encoded_string = base64.b64encode(image_file.read())
    return encoded_string

Node.js

// Read the file into memory.
var fs = require('fs');
var imageFile = fs.readFileSync('/path/to/file');

// Convert the image data to a Buffer and base64 encode it.
var encoded = Buffer.from(imageFile).toString('base64');

Java

// Import the Base64 encoding library.
import org.apache.commons.codec.binary.Base64;

// Encode the image.
String encodedString = Base64.getEncoder().encodeToString(imageFile.getBytes());

Go

import (
    "bufio"
    "encoding/base64"
    "io"
    "os"
)

// Open image file.
f, _ := os.Open("image.jpg")

// Read entire image into byte slice.
reader := bufio.NewReader(f)
content, _ := io.ReadAll(reader)

// Encode image as base64.
base64.StdEncoding.EncodeToString(content)