Class: ObjectStorage

@nginstack/engine/lib/cloud/ObjectStorage~ ObjectStorage


new ObjectStorage(provider, options)

Permite gravar e ler "objetos" nos 3 principais provedores de armazenamento em nuvem do mercado: Google, Amazon e Azure.

Parameters:
Name Type Description
provider string

Provedor de armazenamento em nuvem. Pode ser informado 'google', 'amazon' ou 'azure'.

options GoogleOptions | AmazonOptions | AzureOptions

Objeto contendo o conjunto de variáveis de configuração necessárias para a conexão com o serviço.

Examples
const ObjectStorage = require('@nginstack/engine/lib/cloud/ObjectStorage.js');
const storage = ObjectStorage.fromConfig(99999999);
const info = storage.uploadData('a/path/to/my-file.txt', 'my file content');
const ObjectStorage = require('@nginstack/engine/lib/cloud/ObjectStorage.js');
const gcp = new ObjectStorage('google', {
  'bucketName': '...',
  'applicationCredentials': '...'
});
const info = gcp.uploadData('a/path/to/my-file.txt', 'my file content');

Members


readOnly :boolean

Indica se o acesso ao serviço está sendo feito em modo somente leitura.

O acesso será somente para leitura se:

  • No cadastro do serviço, localizado em "Administração do sistema > Serviços em nuvem > Armazenamento de objetos" o campo "Somente leitura" estiver marcado.
  • Se o Engine não conseguir confirmar que a base de dados corrente é a base proprietária do bucket. Isso pode acontecer se no bucket informado no cadastro do serviço não for encontrado o arquivo de manifesto ou se o manifesto não indicar que a base de dados corrente é a base proprietária do bucket.
Type:
  • boolean

Methods


<static> fromConfig(key [, options])

Retorna uma instancia de ObjectStorage referente ao servidor cadastrado.

Parameters:
Name Type Argument Description
key number

Chave do cadastro do serviço de armazenamento.

options Object <optional>

Opções de conexão ao serviço.

Properties
Name Type Argument Description
ignoreOwnership boolean <optional>

Conecta ao serviço no modo somente leitura, independente da configuração do serviço no processo de cadastro.

takeOwnership boolean <optional>

Força a associação do bucket à base de dados corrente. Essa opção deve ser utilizada com cuidado, pois somente um bucket pode estar vinculado a uma base de dados com acesso de escrita. Antes de vincular a esta base de dados, verifique se há uma outra base de dados que esteja utilizando este bucket e que perderá o acesso de escrita após o novo vínculo, evitando a interrupção de processos importantes que utilizem o bucket.

Returns:

Instancia de ObjectStorage.

Type
ObjectStorage

delete(location)

Remove o objeto localizado no caminho informado.

Parameters:
Name Type Description
location string

Caminho do objeto a ser removido. Se não for encontrado um objeto no caminho informado será gerado erro.


download(location)

Realiza o download do objeto armazenado no repositório remoto.

Parameters:
Name Type Description
location string

Caminho completo do objeto no repositório. O caminho informado diferencia letras maiúsculas e minúsculas.

Returns:

Objeto baixado do repositório remoto. Se não for encontrado um objeto no caminho informado será gerado erro.

Type
DownloadResult

exists(location)

Retorna se o objeto no caminho informado existe ou não.

Parameters:
Name Type Description
location string

Caminho do objeto a ser consultado.

Returns:
Type
boolean

info(location)

Retorna os detalhes do objeto localizado no caminho informado.

Parameters:
Name Type Description
location string

Caminho completo do objeto no repositório. O caminho informado diferencia letras maiúsculas e minúsculas.

Returns:

Objeto com os detalhes do objeto informado. Se não for encontrado um objeto no caminho informado será gerado erro.

Type
ObjectInfo

list( [prefix])

Lista os objetos gravados no repositório. É possível filtrar os registros retornados utilizando o parâmetro "prefix" para informar o "caminho" dos objetos no repositório.

Parameters:
Name Type Argument Description
prefix string <optional>

Caminho ou parte do caminho do objeto no repositório. Se não for informado, retornará uma lista com os metadados de todos os objetos armazenados no repositório. O caminho informado diferencia letras maiúsculas e minúsculas.

Returns:

Lista com os metadados dos objetos encontrados. Nos dados retornados não há o conteúdo dos objetos. Para obter o conteúdo dos objetos deve ser utilizado o método "download". Se nenhum objeto for encontrado no caminho informado, será retornado um Array vazio.

Type
Array.<ObjectInfo>

uploadData(location, content [, options])

Grava um objeto no repositório utilizando os bytes informados. O conteúdo informado não passará por nenhum tipo de codificação antes da gravação.

Parameters:
Name Type Argument Description
location string

Caminho completo do objeto no repositório remoto.

content string | ArrayBuffer | Uint8Array

Conteúdo do objeto. Se for informada uma String, será considerada como string binária previamente codificada.

options UploadOptions <optional>

Opções de configuração do objeto enviado.

Returns:

Objeto com os detalhes do objeto gravado no repositório remoto.

Type
ObjectInfo

uploadFile(location, filePath [, options])

Grava um objeto no repositório informando o caminho do arquivo de origem no sistema operacional. Da mesma forma que o método "uploadData", este método não realiza a codificação dos dados antes da gravação no repositório.

Parameters:
Name Type Argument Description
location string

Caminho completo do objeto no repositório remoto.

filePath string

Caminho do arquivo que será enviado para o repositório.

options UploadOptions <optional>

Opções de configuração do objeto enviado.

Returns:

Objeto com os detalhes do objeto gravado no repositório remoto.

Type
ObjectInfo

uploadText(location, content [, options])

Grava um objeto no repositório utilizando o texto informado.

Parameters:
Name Type Argument Description
location string

Caminho completo do objeto no repositório remoto.

content string

Conteúdo do objeto. Se for informada uma String, será considerada como string binária previamente codificada.

options UploadOptions <optional>

Opções de configuração do objeto enviado. O conteúdo será codificado em UTF-8 antes de ser gravado no repositório. Por esse motivo, se for informado um "content-type" com "charset" diferente de UTF-8 será gerado um erro. Para realizar upload definindo um "content-type" com "charset" diferente de UTF-8, deve ser utilizado o método "uploadData" ou "uploadFile".

Returns:

Objeto com os detalhes do objeto gravado no repositório remoto.

Type
ObjectInfo