Opções de proxy do Lua-cURL para baixar um arquivo
Anexe um endpoint de proxy a um easy handle do Lua-cURL e mantenha o destino e o fluxo de saída nessa transferência.
O Lua-CURLv3 aceita opções do libcurl na tabela usada para construir um easy handle. Coloque o proxy ali:
local cURL = require "cURL"
local transfer = cURL.easy {
url = "https://www.example.com/file.bin",
proxy = "http://proxy.example:8080",
writefunction = output,
}
local ok, failure = pcall(function()
transfer:perform()
end)
transfer:close()
if not ok then error(failure) end
Este trecho pressupõe que output é um arquivo gravável aberto em modo binário e pertencente ao chamador. O chamador o fecha após a operação. A chamada protegida garante que o easy handle seja fechado quando perform gerar um erro.
A URL ainda identifica o arquivo. A opção de proxy seleciona o intermediário, e o libcurl trata o túnel HTTP compatível com o destino HTTPS. Para um download permitido de arquivo público sem conta de proxy, pegue o endpoint HTTP de uma entrada na lista de proxies HTTP. Não é preciso reescrever manualmente a URL do arquivo como URL de proxy.
Uma opção explícita também deixa clara a origem da configuração. O tratamento do ambiente de proxy pelo libcurl é outra entrada; a preferência de proxy do sistema operacional do navegador não é um valor universal que toda biblioteca de rede Lua obtenha automaticamente.
Se a solicitação deve seguir uma política automática gerenciada, organize a descoberta compatível e passe a rota selecionada ao cliente. A tabela de opções easy fornece uma rota fixa para essa transferência.