Я хочу сравнить приложение, выполнив много запросов HTTP PUT, которые включают в себя тело файла.У меня много файлов, и каждый файл нужно отправлять только один раз.
Пока я пытаюсь сделать это с помощью WRK.Один из способов сделать это - разделить мои данные на несколько репо, предоставив каждому потоку WRK репо.Но моя большая проблема заключается в том, как передать файл в качестве параметра PUT (в основном сделать curl -T).Сейчас я делаю это, перечитывая файл в скрипте LUA и помещая содержимое в wrk.body, который не очень производительный (слишком медленный).
Вот часть кода, которую я использую для выполненияPUT с параметром файла:
function read_file(path)
local file, errorMessage = io.open(path, "r")
if not file then
error("Could not read the file: "..path.." Error : " .. errorMessage .. "\n")
end
local content = file:read "*all"
file:close()
return content
end
request = function()
local body = read_file("/data/"..id.."/"..files[counter])
counter = counter + 1
local Boundary = "----WebKitFormBoundaryePkpFF7tjBAqx29L"
wrk.headers["Content-Type"] = "multipart/form-data; boundary=" .. Boundary
return wrk.format("PUT", url, wrk.headers,body)
end
Я просто хочу узнать, существует ли более эффективный способ добавления файла в виде HTTP-запроса PUT (или POST) с использованием WRK.