Complete File Upload
Intent
Runs the complete file upload action.
When to call it
Call this when your workflow reaches the point where it must complete file upload.
Access boundary
Authorize the request with a token that carries files:write.
Successful result
A successful request returns 200. The response schema below defines the body your integration receives.
Operational notes
Complete a file upload.
Scopes: files:write
POST
/
v1
/
files
/
{id}
/
uploaded
Complete File Upload
curl --request POST \
--url https://api.getruba.com/v1/files/{id}/uploaded \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"id": "<string>",
"path": "<string>",
"parts": [
{
"number": 123,
"checksum_etag": "<string>",
"checksum_sha256_base64": "<string>"
}
]
}
'import requests
url = "https://api.getruba.com/v1/files/{id}/uploaded"
payload = {
"id": "<string>",
"path": "<string>",
"parts": [
{
"number": 123,
"checksum_etag": "<string>",
"checksum_sha256_base64": "<string>"
}
]
}
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({
id: '<string>',
path: '<string>',
parts: [{number: 123, checksum_etag: '<string>', checksum_sha256_base64: '<string>'}]
})
};
fetch('https://api.getruba.com/v1/files/{id}/uploaded', 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.getruba.com/v1/files/{id}/uploaded",
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([
'id' => '<string>',
'path' => '<string>',
'parts' => [
[
'number' => 123,
'checksum_etag' => '<string>',
'checksum_sha256_base64' => '<string>'
]
]
]),
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.getruba.com/v1/files/{id}/uploaded"
payload := strings.NewReader("{\n \"id\": \"<string>\",\n \"path\": \"<string>\",\n \"parts\": [\n {\n \"number\": 123,\n \"checksum_etag\": \"<string>\",\n \"checksum_sha256_base64\": \"<string>\"\n }\n ]\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.getruba.com/v1/files/{id}/uploaded")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"id\": \"<string>\",\n \"path\": \"<string>\",\n \"parts\": [\n {\n \"number\": 123,\n \"checksum_etag\": \"<string>\",\n \"checksum_sha256_base64\": \"<string>\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.getruba.com/v1/files/{id}/uploaded")
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 \"id\": \"<string>\",\n \"path\": \"<string>\",\n \"parts\": [\n {\n \"number\": 123,\n \"checksum_etag\": \"<string>\",\n \"checksum_sha256_base64\": \"<string>\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"organization_id": "<string>",
"name": "<string>",
"path": "<string>",
"mime_type": "<string>",
"size": 123,
"storage_version": "<string>",
"checksum_etag": "<string>",
"checksum_sha256_base64": "<string>",
"checksum_sha256_hex": "<string>",
"last_modified_at": "2023-11-07T05:31:56Z",
"version": "<string>",
"service": "downloadable",
"is_uploaded": true,
"created_at": "2023-11-07T05:31:56Z",
"size_readable": "<string>"
}{
"error": "NotPermitted",
"detail": "<string>"
}{
"error": "ResourceNotFound",
"detail": "<string>"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Authorizations
You can generate an Organization Access Token from your organization's settings.
Path Parameters
The file ID.
Body
application/json
Response
File upload completed.
- DownloadableFileRead
- ProductMediaFileRead
- OrganizationAvatarFileRead
- SupportCaseAttachmentFileRead
File to be associated with the downloadables benefit.
The stable identifier for this record.
Allowed value:
"downloadable"⌘I
Complete File Upload
curl --request POST \
--url https://api.getruba.com/v1/files/{id}/uploaded \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"id": "<string>",
"path": "<string>",
"parts": [
{
"number": 123,
"checksum_etag": "<string>",
"checksum_sha256_base64": "<string>"
}
]
}
'import requests
url = "https://api.getruba.com/v1/files/{id}/uploaded"
payload = {
"id": "<string>",
"path": "<string>",
"parts": [
{
"number": 123,
"checksum_etag": "<string>",
"checksum_sha256_base64": "<string>"
}
]
}
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({
id: '<string>',
path: '<string>',
parts: [{number: 123, checksum_etag: '<string>', checksum_sha256_base64: '<string>'}]
})
};
fetch('https://api.getruba.com/v1/files/{id}/uploaded', 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.getruba.com/v1/files/{id}/uploaded",
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([
'id' => '<string>',
'path' => '<string>',
'parts' => [
[
'number' => 123,
'checksum_etag' => '<string>',
'checksum_sha256_base64' => '<string>'
]
]
]),
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.getruba.com/v1/files/{id}/uploaded"
payload := strings.NewReader("{\n \"id\": \"<string>\",\n \"path\": \"<string>\",\n \"parts\": [\n {\n \"number\": 123,\n \"checksum_etag\": \"<string>\",\n \"checksum_sha256_base64\": \"<string>\"\n }\n ]\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.getruba.com/v1/files/{id}/uploaded")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"id\": \"<string>\",\n \"path\": \"<string>\",\n \"parts\": [\n {\n \"number\": 123,\n \"checksum_etag\": \"<string>\",\n \"checksum_sha256_base64\": \"<string>\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.getruba.com/v1/files/{id}/uploaded")
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 \"id\": \"<string>\",\n \"path\": \"<string>\",\n \"parts\": [\n {\n \"number\": 123,\n \"checksum_etag\": \"<string>\",\n \"checksum_sha256_base64\": \"<string>\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"organization_id": "<string>",
"name": "<string>",
"path": "<string>",
"mime_type": "<string>",
"size": 123,
"storage_version": "<string>",
"checksum_etag": "<string>",
"checksum_sha256_base64": "<string>",
"checksum_sha256_hex": "<string>",
"last_modified_at": "2023-11-07T05:31:56Z",
"version": "<string>",
"service": "downloadable",
"is_uploaded": true,
"created_at": "2023-11-07T05:31:56Z",
"size_readable": "<string>"
}{
"error": "NotPermitted",
"detail": "<string>"
}{
"error": "ResourceNotFound",
"detail": "<string>"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}