Manipulação de arquivos remotos em sites da internet com utilização do protocolo WebDAV.
Sintaxe
nRet := WDClient(<cMethod> , <cLocalFile>, <cURL1>, <cURL2>, <cUserPwd>, <aInfo>)
Parâmetros
Nome | Tipo | Descrição | Obrigatório | Referência | Observações |
---|---|---|---|---|---|
cMethod | caracter | operação a ser efetuada | s | n | Ver item 1 nas observações. |
cLocalFile | caracter | arquivo local a ser manipulado | s | n | Ver item 2 nas observações |
cURL1 | caracter | primeira url a ser manipulada | s | n | Ver item 3 nas observações |
cURL2 | caracter | segunda url a ser manipulada | s | n | Ver item 4 nas observações |
cUserPwd | caracter | usuário e senha utilizados | s | n | Ver item 5 nas observações |
aInfo | array | array com informações retornadas pela função | s | s | Ver item 6 nas observações |
Retorno
Nome | Tipo | Descrição | Observações |
---|---|---|---|
nRet | numérico | resultado da operação | Ver item 7 nas observações |
Observações
- Valores a serem utilizados no parâmetro cMethod:
"PUT": upload de arquivo local para site remoto
"GET": download de arquivo remoto para arquivo local
"DELETE": remoção de arquivo no site remoto
"COPY": cópia de um arquivo no site para outro arquivo no site
"MOVE": move para outro diretório, ou renomeia um arquivo no site
"MKCOL": cria um diretório no site - Valores a serem utilizados no parâmetro cLocalFile
método PUT: nome completo do arquivo local que vai ser copiado para o site remoto
método GET: nome completo do arquivo local que vai ser baixado do site remoto
outros métodos: sem uso, passar "" (string vazia)
exemplo: "c:\xxx\yyy\zzz\aaa.zip" - Valores a serem utilizados no parâmetro cURL1
método PUT: url do arquivo remoto destino do upload
método GET: url do arquivo remoto origem do download
método DELETE: url do arquivo remoto que vai ser deletado
método COPY: url do arquivo remoto origem da cópia
método MOVE: url do arquivo remoto origem da movimentação
método MKCOL: url do diretório a ser criado
exemplo: "https://na1-di.gooddata.com/project-uploads/mftqxzzw58lfyz4cj1h114kvcva3kxy2/today"
exemplo: "https://na1-di.gooddata.com/project-uploads/mftqxzzw58lfyz4cj1h114kvcva3kxy2/today/test.dat"
exemplo: "http://mysite.example.com/mydir"
exemplo: "http://mysite.example.com/mydir/myfile.txt" - Valores a serem utilizados no parâmetro cURL2
método COPY: url do arquivo remoto destino da cópia
método MOVE: url do diretório destino da movimentação, ou novo nome do arquivo remoto
outros métodos: sem uso, passar "" (string vazia)
exemplos: ver item 3 - Valores a serem utilizados no parâmetro cUserPwd
Usuário e senha do site remoto, normalmente no formato nome@site:senha
(isto é, email e senha separados por ":").
Caso não seja necessário, passar "" (string vazia). - Valores retornados no parâmetro aInfo
aInfo[1]: HTTP responde code enviado pelo site remoto
aInfo[2]: código de erro interno caso a operação tenha falhado localmente
aInfo[3]: código de erro do sistema operacional ou da camada de comunicação
aInfo[4]: tempo total de duração da operação
aInfo[5]: tamanho total de upload
aInfo[6}: tamanho total de download - Resultado da operação retornado em nRet
0: operação bem sucedida
1: erro retornado pelo site (verificar aInfo[1])
2: erro detectado localmente (verificar aInfo[2])
valores mais prováveis em aInfo[2] caso nRet tenha retornado 2:
1: método inválido (não é "PUT", "GET", etc)
7. faltando nome de arquivo local (cLocalFile == "")
8: faltando valor da url1 (cURL1 == "")
9: faltando valor da url (cURL2 == "")
13: erro ao abrir/criar arquivo local
outros valores recebidos em aInfo[2] devem ser reportados para possível correção
Exemplos
Upload de arquivo
local cLocalFile := "c:\my_dir\my_subdir\test_upload.zip" local cURL1 := "http://my_site.example.com/my_files/test_upload.zip" local cUserPwd := "[email protected]:my_password" local aInfo := {} local nRet := 0 conout("* fazendo upload do arquivo " + cLocalFile) nRet = WDClient("PUT", cLocalFile, cURL1, "", cUserPwd, @aInfo) if nRet == 0 conout("* upload bem sucedido, verifique no site") else conout("* erro " + AllTrim(Str(nRet)) + " no upload") conout("* httpRespCode=" + AllTrim(Str(aInfo[1])) conout("* erro2=" + AllTrim(Str(aInfo[2])) conout("* erro3=" + AllTrim(Str(aInfo[3])) endif
Download de arquivo
local cLocalFile := "c:\my_dir\my_subdir\test_download.zip" local cURL1 := "http://my_site.example.com/my_files/test_download.zip" local cUserPwd := "[email protected]:my_password" local aInfo := {} local nRet := 0 conout("* fazendo download do arquivo " + cLocalFile) nRet = WDClient("GET", cLocalFile, cURL1, "", cUserPwd, @aInfo) if nRet == 0 conout("* download bem sucedido, verifique nos arquivos locais") else conout("* erro " + AllTrim(Str(nRet)) + " no download") conout("* httpRespCode=" + AllTrim(Str(aInfo[1])) conout("* erro2=" + AllTrim(Str(aInfo[2])) conout("* erro3=" + AllTrim(Str(aInfo[3])) endif
Cópia remota de arquivos
local cURL1 := "http://my_site.example.com/my_files/test_copy_org.zip" local cURL2 := "http://my_site.example.com/my_files/test_copy_dest.zip" local cUserPwd := "[email protected]:my_password" local aInfo := {} local nRet := 0 conout("* fazendo cópia remota de arquivos") nRet = WDClient("COPY", "", cURL1, cURL2, cUserPwd, @aInfo) if nRet == 0 conout("* cópia remota de arquivos bem sucedida, verifique no site") else conout("* erro " + AllTrim(Str(nRet)) + " na cópia remota de arquivos") conout("* httpRespCode=" + AllTrim(Str(aInfo[1])) conout("* erro2=" + AllTrim(Str(aInfo[2])) conout("* erro3=" + AllTrim(Str(aInfo[3])) endif
Veja também
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas