Lua-CURLv3 acepta opciones de libcurl en la tabla que se usa para construir un easy handle. Coloque el proxy ahí:

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 fragmento supone que output es un archivo escribible abierto en modo binario y propiedad de quien llama. Quien llama lo cierra después de la operación. La llamada protegida garantiza que el easy handle se cierre cuando perform provoque un error.

La URL sigue identificando el archivo. La opción de proxy selecciona el intermediario y libcurl gestiona el túnel HTTP compatible con el destino HTTPS. Para una descarga permitida de un archivo público sin cuenta de proxy, tome el punto de conexión HTTP de una entrada en la lista de proxies HTTP. No hace falta reescribir manualmente la URL del archivo como URL de proxy.

Una opción explícita también deja clara la fuente de la configuración. El manejo del entorno de proxy de libcurl es otra entrada; la preferencia de proxy del sistema operativo del navegador no es un valor universal que toda biblioteca de red de Lua obtenga automáticamente.

Si la solicitud debe seguir una política automática gestionada, organice el descubrimiento compatible y pase la ruta seleccionada al cliente. La tabla de opciones easy ofrece una ruta fija para esta transferencia.

Artículos relacionados