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.

Compartilhe este tutorial

Tutoriais na mesma categoria

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 Visualiz...

Formulário de Contato

Neste tutorial, veremos uma aplicação do tipo Formulário de Controle customizado, onde teremos e...

Form login personalizado

Neste exemplo, veremos como utilizar Templates HTML disponíveis para criar aplicações de Control...

Comente este post