Upload de arquivos

Olá,boa tarde.
Estou tentando alguma forma de realizar upload de arquivos externos a plataforma para o GED.
Em alguns testes via Insomnia, consigo realizar o envio e publicar.
Estou utilizando duas rotas para realizar o upload:

  1. url/ecm/upload → nesse link, envio um multipart form com o arquivo
  2. url/api/public/ecm/document/createDocument → nesse link, encontro o arquivo enviado anteriormente, e publico direcionando-o para uma pasta atraves do json passado pelo body.
    Exemplo: {
    “description” : “Arquivo de upload”,
    “parentId” : pasta_id,
    “attachments” : [{“fileName”: “arquivo”}]
    }

Porém estou encontrando dificuldades em construir um codigo para isso, estou tentando via node e jquery.

Bom dia sim e possível no git do fluig tem um exemplo que funciona.
https://git.fluig.com/projects/SAMPLES/repos/widgets/browse

Qualquer coisa é so me falar.

1 curtida

Olá, Daniel
Esse exemplo utiliza uma widget que já esta logada na plataforma, e apenas publica o documento.
Estou tentando enviar um arquivo e depois publica-lo, vindo de uma pagina totalmente externa.
A parte da autenticação oauth está ok.
Consigo publicar também.
O problema é na hora de mandar o arquivo em si pela rota /ecm/upload.
Que agora deu pra recusar post, e passou a considerar como get.
Via insomnia, tudo funciona.

Esse é externo.
Posso verificar mas eu uso aqui ele so se eu editei o meu.

1 curtida
	config : {
		consumerPublic: "teste",
		consumerSecret: "sogeloteste",
		tokenPublic: 	"7595daf8c012",
		tokenSecret: 	"496b-ae9d-91af7c4250a9",
		url: 			"https://meufluig.fluig.com"
	},

Veja se tem esse cara no seu fonte ele se refere a autenticação do fluig

Sim, meu codigo já está autenticado.
Porem, esse da widget não. Porque está vinculada a plataforma.

Muito estranho uso em uma pagina publica aqui e é nessa linha que passo a autenticação

@marllon.sousa para publicar arquivos no fluig de uma pagina publica voce vai ter que utilizar o oauth, para isso voce tem que acessar o painel de controle do Fluig, esta configuração vai gerar um um key e o secret conforme exemplo abaixo.

image


function fnIniciaVariaveis(){

	oauth = OAuth({
		consumer: {
	        key: 'ConsumerKey',
	        secret: 'ConsumerSecret'
		},
		signature_method: 'HMAC-SHA1',
		hash_function: function(base_string, key) {
			return CryptoJS.HmacSHA1(base_string, key).toString(CryptoJS.enc.Base64);
		},
		nonce_length: 6
	});		

	token = {
		key: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
		secret: 'yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy'
	};
}

function fnPublicaGedDocumento(file, numPastaPublicar, tipoPublicacao){
	
	var request_data = {
        url: WCMAPI.getServerURL() + '/api/public/ecm/document/createDocument',
        method: 'POST'
    };
	
	$.ajax({
		url: request_data.url,
	    async: false,
	    type: request_data.method,    		
		contentType: "application/json",		
		data: JSON.stringify({
			"description": file.name,
			"parentId": numPastaPublicar,
			"downloadEnabled": true,
			"attachments": [{
				"fileName": file.name
			}],
		}),
		headers: oauth.toHeader(oauth.authorize(request_data, token)),
		error: function(erro) {								
			FLUIGC.toast({
				title: '',
				message: "Falha ao enviar",
				type: 'danger'
			});
		},
		success: function(data){			
			
		},
	});	
}
1 curtida