Árvore de páginas

Manipulação de arquivos remotos em sites da internet com utilização do protocolo WebDAV. Podem ser usados tanto sites sem segurança (http://) quanto sites seguros (https://)

Sintaxe


nRet := WDClient(<cMethod> , <cLocalFile>, <cURL1>, <cURL2>, <cUserPwd>, <aInfo>)

Parâmetros

NomeTipoDescriçãoObrigatórioReferênciaObservações
cMethodcaracter

operação a ser efetuada

sn

Ver item 1 nas observações.

cLocalFilecaracterarquivo local a ser manipuladosnVer item 2 nas observações
cURL1caracterprimeira url a ser manipuladasnVer item 3 nas observações
cURL2caractersegunda url a ser manipuladasnVer item 4 nas observações
cUserPwdcaracterusuário e senha utilizadossnVer item 5 nas observações
aInfoarrayarray com informações retornadas pela funçãossVer item 6 nas observações

Retorno

NomeTipoDescriçãoObservações
nRetnumérico

resultado da operação

Ver item 7 nas observações

Observações

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

  2. 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"

  3. 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"

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

  5. 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).

  6. Valores retornados no parâmetro aInfo
    aInfo[1]: HTTP response 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

  7. 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 para leitura
    24: não conseguiu abrir/criar arquivo local para escrita
    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

Mudança de nome de  arquivo remoto

local cURL1 := "http://my_site.example.com/my_files/test_move_org.zip"
local cURL2 := "http://my_site.example.com/my_files/test_move_dest.zip"
local cUserPwd := "[email protected]:my_password"
local aInfo := {}
local nRet := 0
        
conout("* mudando nome de arquivo remoto")
        
nRet = WDClient("MOVE", "", cURL1, cURL2, cUserPwd, @aInfo)

if nRet == 0
   conout("* mudança de nome de arquivo remoto bem sucedida, verifique no site")
else
   conout("* erro " + AllTrim(Str(nRet)) + " na mudança de nome de arquivo remoto")
   conout("* httpRespCode=" + AllTrim(Str(aInfo[1]))
   conout("* erro2=" + AllTrim(Str(aInfo[2]))
   conout("* erro3=" + AllTrim(Str(aInfo[3]))
endif

Mudança de localização de  arquivo remoto

local cURL1 := "http://my_site.example.com/my_files/test_move.zip"
local cURL2 := "http://my_site.example.com/your_files"
local cUserPwd := "[email protected]:my_password"
local aInfo := {}
local nRet := 0
        
conout("* mudando localização de arquivo remoto")
        
nRet = WDClient("MOVE", "", cURL1, cURL2, cUserPwd, @aInfo)

if nRet == 0
   conout("* mudança de localização de arquivo remoto bem sucedida, verifique no site")
else
   conout("* erro " + AllTrim(Str(nRet)) + " na mudança de localização de arquivo remoto")
   conout("* httpRespCode=" + AllTrim(Str(aInfo[1]))
   conout("* erro2=" + AllTrim(Str(aInfo[2]))
   conout("* erro3=" + AllTrim(Str(aInfo[3]))
endif

Deleção de  arquivo remoto

local cURL1 := "http://my_site.example.com/my_files/test_delete.zip"
local cUserPwd := "[email protected]:my_password"
local aInfo := {}
local nRet := 0
        
conout("* deletando arquivo remoto")
        
nRet = WDClient("DELETE", "", cURL1, "", cUserPwd, @aInfo)

if nRet == 0
   conout("* deleção de arquivo remoto bem sucedida, verifique no site")
else
   conout("* erro " + AllTrim(Str(nRet)) + " na mudança de deleção de arquivo remoto")
   conout("* httpRespCode=" + AllTrim(Str(aInfo[1]))
   conout("* erro2=" + AllTrim(Str(aInfo[2]))
   conout("* erro3=" + AllTrim(Str(aInfo[3]))
endif

Criação de diretório remoto

local cURL1 := "http://my_site.example.com/my_files/new_dir"
local cUserPwd := "[email protected]:my_password"
local aInfo := {}
local nRet := 0
        
conout("* criando diretório remoto")
        
nRet = WDClient("MKCOL", "", cURL1, "", cUserPwd, @aInfo)

if nRet == 0
   conout("* criação de diretório remoto bem sucedida, verifique no site")
else
   conout("* erro " + AllTrim(Str(nRet)) + " na criação de diretório remoto")
   conout("* httpRespCode=" + AllTrim(Str(aInfo[1]))
   conout("* erro2=" + AllTrim(Str(aInfo[2]))
   conout("* erro3=" + AllTrim(Str(aInfo[3]))
endif

Abrangência

Totvs Application Server com release igual ou superior a a 7.00.131227A-20150909 NG

  • Sem rótulos