Tutorial: Gerenciamento de Arquivos na Nuvem

Alguns dos serviços de armazenamento de dados estão prontos para ler e armazenar com segurança arquivos e imagens do seu sistema Scriptcase. Essa opção também salva um arquivo local para aumentar o seu tempo de leitura, e em caso de o arquivo local ser apagado, uma cópia estará funcionando na nuvem!

Criando a aplicação de Controle

1 – Crie uma aplicação do tipo Controle

2 – Devemos criar os campos necessários para o upload dos arquivos e o caminho do diretório a ser salvo. Campos: files, parent

Criando os campos de configuração

3 – Vamos criar um novo campo chamado “api_gateway” que permitirá a seleção da API utilizada. O campo será do tipo “Select” e criaremos um lookup manual. As APIs disponíveis serão: Dropbox, Amazon S3 e Google Drive.

 

4 – Cada um dos tipos de API disponibilizadas requerem outras informações adicionais de configuração. Vamos criar os campos que deverão preencher estas informações.

Dropbox: apikey, apisecret, accesstoken

Amazon S3: apikey, apisecret, api_region, api_bucket

Google Drive: appname, jsonoauth, authcode, tokencode

Nota 1: O campo apikey e apisecret serão utilizados tanto para o Dropbox quanto para o Amazon S3.

 

Criando as Funções

Devemos agora, criar métodos de controle que esconderão os campos desnecessários de acordo com o tipo de API que for selecionada, e também um método para o envio das informações de conexão com a API.

5 – O método hide_fields esconderá os campos de configuração ao iniciar a aplicação.

hide_fields

Código hide_fields  :

sc_field_display({jsonoauth}, off);
sc_field_display({authcode}, off);
sc_field_display({tokencode}, off);
sc_field_display({api_region}, off);
sc_field_display({api_bucket}, off);	
sc_field_display({appname}, off);	

A função hide_fields será chamada no evento onScriptInit

6 – O método show_settings exibirá os campos de acordo com a API selecionada.

Código show_settings :

if($gateway_value == 'dropbox'){
	sc_field_display({jsonoauth}, off);
	sc_field_display({authcode}, off);
	sc_field_display({tokencode}, off);
	sc_field_display({api_region}, off);
	sc_field_display({api_bucket}, off);
	sc_field_display({appname}, off);
	sc_field_display({apikey}, on);
	sc_field_display({apisecret}, on);
	sc_field_display({accesstoken}, on);
}					 

else if($gateway_value == 'drive'){
	sc_field_display({apikey}, off);
	sc_field_display({apisecret}, off);
	sc_field_display({accesstoken}, off);
	sc_field_display({api_region}, off);
	sc_field_display({api_bucket}, off);
	sc_field_display({appname}, on);
	sc_field_display({jsonoauth}, on);
	sc_field_display({authcode}, on);
	sc_field_display({tokencode}, on);
}					 

else if($gateway_value == 's3'){
	sc_field_display({jsonoauth}, off);
	sc_field_display({authcode}, off);
	sc_field_display({accesstoken}, off);
	sc_field_display({appname}, off);
	sc_field_display({apikey}, on);
	sc_field_display({apisecret}, on);
	sc_field_display({api_region}, on);
	sc_field_display({api_bucket}, on);
}					 

Nota: Utilize a opção de adicionar parâmetros à função para adicionar o parâmetro gateway_value

A função show_settings será chamada em um evento ajax onChange do campo api_gateway.

7 – O método upload_file será usado para o envio das informações de conexão com a API.

Código upload_file :

if($field_gateway == 'dropbox'){
	
	sc_api_upload([

	'settings' => [
	'gateway'  => 'dropbox',
	'api_key' => {apikey},
	'api_secret' => {apisecret},
	'access_token' => {accesstoken},
	],
	'file' => {files},
	'parents' => {parent},

	]);
	
}
else if($field_gateway == 'drive'){
	
	sc_api_upload([

	'settings' => [
	'app_name' => {appname},
	'gateway'  => 'drive',
	'json_oauth' => {jsonoauth},
	'auth_code' => {authcode},
	'token_code' => {tokencode},
	],
	'file' => {files},
	'parents' => {parent},

	]);
}
else if($field_gateway == 's3'){
	
	sc_api_upload([

	'settings' => [
	'app_name' => 'scriptcase',
	'gateway'  => 's3',
	'api_key' => {apikey},
	'api_secret' => {apisecret},
	'region' => {api_region},
	'bucket' => {api_bucket},
	],
	'file' => {files},
	'parents' => {parent},

	]);
}

Nota: Utilize a opção de adicionar parâmetros à função para adicionar o parâmetro gateway_value

O método upload_file será chamado no evento onValidadeSuccess

8 – Salve e execute a aplicação.

Tutoriais na mesma categoria

Campo Avaliação

Neste tutorial, será criado um Formulário utilizando os campos de avaliações. Criando o Form...

Formulário Multi-Etapas

Neste tutorial veremos  como criar um formulário multi-etapas, deixando o formulário mais agradá...

Nova opção de Marca d’água

Nova opção para exibir a marca d'água do campo de data dentro do input, disponível para Formul...

Formulário com label fixo

Esta opção pode ser selecionada nas formas do tipo Registro Múltiplo , Grid Editável e Visuali...

Comente este post