up2ftp

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

up2ftp

Mensagem por GameMakerTutoriais em Qua 06 Mar 2013, 03:47




Tem hora que é um pouco cansativo ter que entrar no FTP só pra enviar um único arquivo. Esse script aqui facilita um pouco, ele vai zipar o arquivo, enviar pro seu FTP e quando terminar, vai te dar o link de download. Salve-o com o nome "up2ftp.cmd" e edite as linhas:

Código:
set fpthost=o_endereço_do_seu_ftp
set username=usuário
set password=senha
set linkprefix=prefixo_do_link_usado_pra_download



  • Pode usar direto pelo prompt de comando:

    Código:
    up2ftp "meu arquivo"
    up2ftp "minha pasta"

  • Arrastando e soltando algum arquivo em cima do script.

  • Criar um atalho pra ele. Depois, arrastar e soltar algum arquivo em cima do atalho.

  • Criar um atalho pra ele na área de trabalho e executar. Quando ele for executado sem argumentos, ele vai mostrar um diálogo pedindo o nome do arquivo.


Pra ele funcionar sempre, no sistema todo, não importando em qual pasta ou janela você esteja, copie-o pra dentro de qualquer uma das pastas listadas pelo comando "path". Depois disso, pode usar normalmente...

Ele guarda seu usuário e senha. Se o PC é compartilhado por mais alguém, cuidado.

GameMakerTutoriais

Número de Mensagens : 800
Data de inscrição : 29/01/2011
Reputação : 26
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: up2ftp

Mensagem por TRFN em Qua 06 Mar 2013, 08:51

Ficou muito bom. Parabéns. Em breve vou fazer algo que estenderá as funções do FTP para o GM, utilizando o próprio FTP.

___________



TRFN

Ranking : Nota C
Número de Mensagens : 970
Idade : 21
Data de inscrição : 16/01/2012
Notas recebidas : C
Reputação : 33
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 2

http://trfnsite.com

Voltar ao Topo Ir em baixo

Re: up2ftp

Mensagem por GameMakerTutoriais em Qua 06 Mar 2013, 10:31



TRFN escreveu:Ficou muito bom. Parabéns. Em breve vou fazer algo que estenderá as funções do FTP para o GM, utilizando o próprio FTP.

Bacana! Eu comecei a criar um troço desses no GM há um tempo atrás e achei bem prático. Não é tão fácil quanto uma dll, mas acho que usar scripts te dá um controle mais 'abrangente'.

O único empecilho é ter que contornar os erros. A velocidade pra enviar e receber não perde em nada, mas a velocidade no 'feedback' do que tá acontecendo é bem mais lenta. Às vezes eu tinha que listar o diretório lá, pegar o tamanho do arquivo e conferir com o baixado pra ver se estava tudo certinho. São gambiarras, mas acabam dando certo mesmo. kkkk

Valeu!

GameMakerTutoriais

Número de Mensagens : 800
Data de inscrição : 29/01/2011
Reputação : 26
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: up2ftp

Mensagem por PedroX em Qua 06 Mar 2013, 12:15

Bem legal o script. Funcionou aqui.

Estou usando a gmFTP para fazer uns testes e há alguns bugs incontornáveis (aparentemente). Será que tem como listar os arquivos que estão no servidor e colocar num txt? Queria também que eu pudesse chamar pelo GM, passando os argumentos. Depois eu leio linha por linha e faço o que quero.

Eu até tentei criando um arquivo, escrevendo 'ftp open servidor usuario senha pause' em linhas separadas, mas não deu certo.

Até mais!

PedroX

Ranking : Nota C
Número de Mensagens : 6034
Idade : 21
Data de inscrição : 26/07/2008
Notas recebidas : C+B
Reputação : 286
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: up2ftp

Mensagem por GameMakerTutoriais em Qua 06 Mar 2013, 13:03


Será que tem como listar os arquivos que estão no servidor e colocar num txt? Queria também que eu pudesse chamar pelo GM, passando os argumentos. Depois eu leio linha por linha e faço o que quero.

Tem. Esse FTP nativo do prompt faz tudo o que um cliente robusto faz, só que ele não é tão "automático" quanto um. Você tem que pôr comando por comando, mas dá certinho.

Nesse caso, você tem que chamar o ftp com um parâmetro "-s:script.txt " e separar os comandos linha a linha dentro do arquivo “script.txt”. Ele vai executar um por um.

O empecilho que eu comentei antes é que ele não retorna erro quando houver, mas mesmo assim ainda é possível verificar isso pelo Game Maker.

Pra pegar a lista, você pode usar, dentro do script, o comando "mdir" (lista detalhada) ou "mls" (lista simples). Ambos imprimem a saída em um arquivo. Por exemplo:

Código:
usuario
senha
mdir
*.*
.\lista_arquivos.txt
y
bye

E pra chamar o comando:

Código:
ftp –s:script.txt endereço_do_ftp

GameMakerTutoriais

Número de Mensagens : 800
Data de inscrição : 29/01/2011
Reputação : 26
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: up2ftp

Mensagem por PedroX em Qua 06 Mar 2013, 14:07

Baseando na sua resposta, fiz o seguinte:

Código:
fn=temp_directory+'\f.txt';
file_open_write(fn);
file_write_string(user); file_writeln();
file_write_string(pass); file_writeln();
file_write_string('ls . output.txt'); file_writeln();
file_write_string('quit');
file_close();
execute_program("cmd", "/c ftp -s:"+fn+" ftp.x10.mx", 1);
file_delete(fn);

Funcionou direitinho. Valeu!

Edit: Só falta um jeito (sem DLL) de chamar o DOS em "silêncio".

Até mais!

PedroX

Ranking : Nota C
Número de Mensagens : 6034
Idade : 21
Data de inscrição : 26/07/2008
Notas recebidas : C+B
Reputação : 286
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: up2ftp

Mensagem por GameMakerTutoriais em Qua 06 Mar 2013, 15:30

Experimenta isso:

Código:

user = '';
pass = '';

ftpscript := environment_get_variable('temp') + '\ftptmp.bak';
ftpfile := file_text_open_write(ftpscript);
file_text_write_string(ftpfile, user + chr(10));
file_text_write_string(ftpfile, pass + chr(10));
file_text_write_string(ftpfile, 'ls .\ "' + working_directory + '\output.bak"' + chr(10));
file_text_write_string(ftpfile, 'quit' + chr(10));
file_text_close(ftpfile);

vbsscript := environment_get_variable('temp') + '\vbstmp.vbs';
vbsfile := file_text_open_write(vbsscript);
file_text_write_string(vbsfile, 'set obj = createobject("wscript.shell")' + chr(10));
file_text_write_string(vbsfile, 'obj.run "ftp -s:" & chr(34) & "' + ftpscript + '" & chr(34) & " " & "ftp.host.com", 0, true' + chr(10));
file_text_close(vbsfile);

execute_program('wscript', '"' + vbsscript + '"', true);

file_delete(ftpscript);
file_delete(vbsscript);

GameMakerTutoriais

Número de Mensagens : 800
Data de inscrição : 29/01/2011
Reputação : 26
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: up2ftp

Mensagem por Conteúdo patrocinado Hoje à(s) 11:53


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo


 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum