go, golang, base64, gzip, string, unzip, file

Golang - Extract base64 gzip from string

Identificador: 11547
Autor: Ricardo Bocchi   segunda-feira, Dia 1 de maio de 2023, às 02:53:28 horas
Revisado Por:    terça-feira, Dia 24 de janeiro de 2017, às 16:16:56 horas
Visualização: Todos

Pontos: 0   Acessos: 5938

Dica de como extrair o conteúdo de uma string Base64 Gzip, usado para transferência de arquivos em WebServices.


import (
  "encoding/base64"
  "compress/gzip"
  "bytes"
  "os"
  "io
)

// content - base64 gzip content
// path - file path to save
func ExtractAndSaveDocumento(content string, path string) error{

  // base64 to bytes
  data, err := base64.StdEncoding.DecodeString(content)

  if err != nil {
    return err
  }

  // reader to unzip
  bReader := bytes.NewReader(data)
 
  // unzip bytes
  gReader, err := gzip.NewReader(bReader)

  if err != nil {
    return err
  }

  defer gReader.Close()

  writer, err := os.Create(path)

  if err != nil {
    return err
  }

  defer writer.Close()

  // save file content
  if _, err = io.Copy(writer, gReader); err != nil {
    return err
  } 

  return nil
}