С wrk, каков наиболее эффективный способ сделать HTTP PUT с файлом в виде тела? - PullRequest
0 голосов
/ 30 мая 2019

Я хочу сравнить приложение, выполнив много запросов 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.

...