Upload with an upload URL
curl --request POST \
--url https://api.fivemesh.io/v1/presigned-url/{token} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"path": "<string>",
"filename": "<string>",
"metadata": {}
}
'import requests
url = "https://api.fivemesh.io/v1/presigned-url/{token}"
payload = {
"path": "<string>",
"filename": "<string>",
"metadata": {}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({path: '<string>', filename: '<string>', metadata: {}})
};
fetch('https://api.fivemesh.io/v1/presigned-url/{token}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.fivemesh.io/v1/presigned-url/{token}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'path' => '<string>',
'filename' => '<string>',
'metadata' => [
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.fivemesh.io/v1/presigned-url/{token}"
payload := strings.NewReader("{\n \"path\": \"<string>\",\n \"filename\": \"<string>\",\n \"metadata\": {}\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.fivemesh.io/v1/presigned-url/{token}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"path\": \"<string>\",\n \"filename\": \"<string>\",\n \"metadata\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fivemesh.io/v1/presigned-url/{token}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"path\": \"<string>\",\n \"filename\": \"<string>\",\n \"metadata\": {}\n}"
response = http.request(request)
puts response.read_bodyFiveMesh CDN
Upload with an upload URL
Upload files through a scoped URL without sending a service key.
POST
/
presigned-url
/
{token}
Upload with an upload URL
curl --request POST \
--url https://api.fivemesh.io/v1/presigned-url/{token} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"path": "<string>",
"filename": "<string>",
"metadata": {}
}
'import requests
url = "https://api.fivemesh.io/v1/presigned-url/{token}"
payload = {
"path": "<string>",
"filename": "<string>",
"metadata": {}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({path: '<string>', filename: '<string>', metadata: {}})
};
fetch('https://api.fivemesh.io/v1/presigned-url/{token}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.fivemesh.io/v1/presigned-url/{token}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'path' => '<string>',
'filename' => '<string>',
'metadata' => [
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.fivemesh.io/v1/presigned-url/{token}"
payload := strings.NewReader("{\n \"path\": \"<string>\",\n \"filename\": \"<string>\",\n \"metadata\": {}\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.fivemesh.io/v1/presigned-url/{token}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"path\": \"<string>\",\n \"filename\": \"<string>\",\n \"metadata\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fivemesh.io/v1/presigned-url/{token}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"path\": \"<string>\",\n \"filename\": \"<string>\",\n \"metadata\": {}\n}"
response = http.request(request)
puts response.read_bodyUpload one or more files to a scoped upload URL created by
If the upload URL was created with
GET /presigned-url.
No service key is required. Send a multipart form body to the returned uploadUrl.
string
required
Upload token from the
uploadUrl.file
required
File to upload. Multiple files are allowed when the URL was created with
maxFiles greater than 1.string
Optional destination folder. If omitted, the upload uses the
path from the created URL. When provided, it must stay inside the URL path lock.string
Optional stored filename.
object
Optional metadata when the URL was created with
allowCustomMetadata=true.curl -X POST "https://api.fivemesh.io/v1/presigned-url/UPLOAD_TOKEN" \
-F "file=@a.png"
path=screenshots, this request stores a.png under screenshots/a.png.
For a single file, the response contains object. For multiple files, the response contains results.Was this page helpful?