Prefetch content
curl --request POST \
--url https://api.gcore.com/cdn/resources/{resource_id}/prefetch \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"paths": [
"/test.jpg",
"test1.jpg"
]
}
'import requests
url = "https://api.gcore.com/cdn/resources/{resource_id}/prefetch"
payload = { "paths": ["/test.jpg", "test1.jpg"] }
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({paths: ['/test.jpg', 'test1.jpg']})
};
fetch('https://api.gcore.com/cdn/resources/{resource_id}/prefetch', 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.gcore.com/cdn/resources/{resource_id}/prefetch",
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([
'paths' => [
'/test.jpg',
'test1.jpg'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"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.gcore.com/cdn/resources/{resource_id}/prefetch"
payload := strings.NewReader("{\n \"paths\": [\n \"/test.jpg\",\n \"test1.jpg\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<api-key>")
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.gcore.com/cdn/resources/{resource_id}/prefetch")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"paths\": [\n \"/test.jpg\",\n \"test1.jpg\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.gcore.com/cdn/resources/{resource_id}/prefetch")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"paths\": [\n \"/test.jpg\",\n \"test1.jpg\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"errors": {
"paths": {
"index": [
"This field may not be blank."
]
}
}
}Tools
Prefetch content
Pre-populate files to a CDN cache before users requests. Prefetch is recommended only for files that more than 200 MB and less than 5 GB.
You can make one prefetch request for a CDN resource per minute. One request for prefetch may content only up to 100 paths to files.
The time of procedure depends on the number and size of the files.
If you need to update files stored in the CDN, first purge these files and then prefetch.
POST
/
cdn
/
resources
/
{resource_id}
/
prefetch
Prefetch content
curl --request POST \
--url https://api.gcore.com/cdn/resources/{resource_id}/prefetch \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"paths": [
"/test.jpg",
"test1.jpg"
]
}
'import requests
url = "https://api.gcore.com/cdn/resources/{resource_id}/prefetch"
payload = { "paths": ["/test.jpg", "test1.jpg"] }
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({paths: ['/test.jpg', 'test1.jpg']})
};
fetch('https://api.gcore.com/cdn/resources/{resource_id}/prefetch', 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.gcore.com/cdn/resources/{resource_id}/prefetch",
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([
'paths' => [
'/test.jpg',
'test1.jpg'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"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.gcore.com/cdn/resources/{resource_id}/prefetch"
payload := strings.NewReader("{\n \"paths\": [\n \"/test.jpg\",\n \"test1.jpg\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<api-key>")
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.gcore.com/cdn/resources/{resource_id}/prefetch")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"paths\": [\n \"/test.jpg\",\n \"test1.jpg\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.gcore.com/cdn/resources/{resource_id}/prefetch")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"paths\": [\n \"/test.jpg\",\n \"test1.jpg\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"errors": {
"paths": {
"index": [
"This field may not be blank."
]
}
}
}Authorizations
API key for authentication. Make sure to include the word apikey, followed by a single space and then your token.
Example: apikey 1234$abcdef
Path Parameters
CDN resource ID.
Body
application/json
Paths to files that should be pre-populated to the CDN.
Paths to the files should be specified without a domain name.
Example:
["/test.jpg", "test1.jpg"]
Response
Successful.
Was this page helpful?
⌘I