HTTP2.0
This commit is contained in:
66
test/runtest.jl
Normal file
66
test/runtest.jl
Normal file
@@ -0,0 +1,66 @@
|
||||
|
||||
function plik_oneshot_upload(file_server_url::String, dataname::String, data::Vector{UInt8})
|
||||
|
||||
# ----------------------------------------- get upload id ---------------------------------------- #
|
||||
# Equivalent curl command: curl -X POST -d '{ "OneShot" : true }' http://localhost:8080/upload
|
||||
url_getUploadID = "$file_server_url/upload" # URL to get upload ID
|
||||
headers = ["Content-Type" => "application/json"]
|
||||
body = """{ "OneShot" : true }"""
|
||||
http_response = HTTP.request("POST", url_getUploadID, headers, body)
|
||||
response_json = JSON.parse(http_response.body)
|
||||
uploadid = response_json["id"]
|
||||
uploadtoken = response_json["uploadToken"]
|
||||
|
||||
# ------------------------------------------ upload file ----------------------------------------- #
|
||||
# Equivalent curl command: curl -X POST --header "X-UploadToken: UPLOAD_TOKEN" -F "file=@PATH_TO_FILE" http://localhost:8080/file/UPLOAD_ID
|
||||
file_multipart = HTTP.Multipart(dataname, IOBuffer(data), "application/octet-stream") # Plik won't accept raw bytes upload
|
||||
url_upload = "$file_server_url/file/$uploadid"
|
||||
headers = ["X-UploadToken" => uploadtoken]
|
||||
|
||||
# Create the multipart form data
|
||||
form = HTTP.Form(Dict(
|
||||
"file" => file_multipart
|
||||
))
|
||||
|
||||
# Execute the POST request
|
||||
http_response = nothing
|
||||
try
|
||||
http_response = HTTP.post(url_upload, headers, form)
|
||||
catch e
|
||||
@error "Request failed" exception=e
|
||||
end
|
||||
response_json = JSON.parse(http_response.body)
|
||||
fileid = response_json["id"]
|
||||
|
||||
# url of the uploaded data e.g. "http://192.168.1.20:8080/file/3F62E/4AgGT/test.zip"
|
||||
url = "$file_server_url/file/$uploadid/$fileid/$dataname"
|
||||
|
||||
return Dict("status" => http_response.status, "uploadid" => uploadid, "fileid" => fileid, "url" => url)
|
||||
end
|
||||
|
||||
|
||||
using HTTP, JSON
|
||||
|
||||
file_server_url = "https://fileserver.yiem.cc"
|
||||
dataname = "test.txt"
|
||||
data = Vector{UInt8}("hello world")
|
||||
|
||||
# Upload to local plik server
|
||||
result = plik_oneshot_upload(file_server_url, dataname, data)
|
||||
println(result)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user