Asset Version
Asset Versions are specific instances of static files that you can host at a particular domain in an Environment.
The steps to create Assets are as follows:
-
Create an
Asset
-
Create an Asset Version
(this resource)
You will need the Asset Version SID that the create request returns to include this Asset in a Build.
Property nameTypePIIDescription
The unique string that we created to identify the Asset Version resource.
Pattern: ^ZN[0-9a-fA-F]{32}$
Min length: 34
Max length: 34
The SID of the Account that created the Asset Version resource.
Pattern: ^AC[0-9a-fA-F]{32}$
Min length: 34
Max length: 34
The SID of the Service that the Asset Version resource is associated with.
Pattern: ^ZS[0-9a-fA-F]{32}$
Min length: 34
Max length: 34
The SID of the Asset resource that is the parent of the Asset Version.
Pattern: ^ZH[0-9a-fA-F]{32}$
Min length: 34
Max length: 34
The URL-friendly string by which the Asset Version can be referenced. It can be a maximum of 255 characters. All paths begin with a forward slash ('/'). If an Asset Version creation request is submitted with a path not containing a leading slash, the path will automatically be prepended with one.
The access control that determines how the Asset Version resource can be accessed. Can be: public
, protected
, or private
.
Possible values: public
private
protected
date_createdstring<date-time>
The absolute URL of the Asset Version resource.
Create an Asset Version resource to upload a file to an Asset resource. The Asset Version resource is created by making a POST
request to a dedicated URL—a URL that is different from the URL used to read and fetch the resource.
https://serverless-upload.twilio.com/v1/Services/ {ServiceSid}/Assets/{AssetSid}/Versions
The following example creates an Asset Version resource using the language of your choice (or curl) and an external file, my-asset.png
, which contains the Asset to upload.
_36const fs = require('fs');
_36// Before running this code, install "form-data" and "axios" using `npm install form-data axios`
_36const FormData = require('form-data');
_36const axios = require('axios');
_36// Find your Account SID and Auth Token at twilio.com/console
_36// and set the environment variables. See http://twil.io/secure
_36const apiKey = process.env.TWILIO_API_KEY;
_36const apiSecret = process.env.TWILIO_API_SECRET;
_36const serviceSid = 'ZSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX';
_36const assetSid = 'ZHXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX';
_36const serviceUrl = `https://serverless-upload.twilio.com/v1/Services/${serviceSid}`;
_36const uploadUrl = `${serviceUrl}/Assets/${assetSid}/Versions`;
_36const form = new FormData();
_36form.append('Path', '/my-asset.png');
_36form.append('Visibility', 'public');
_36form.append('Content', fs.createReadStream('my-asset.png'), {
_36 contentType: 'image/png',
_36// Create a new Asset Version
_36 .post(uploadUrl, form, {
_36 headers: form.getHeaders(),
_36 .then((response) => {
_36 const newVersionSid = response.data.sid;
_36 console.log(newVersionSid);
Warning
Note that the Serverless upload endpoint is on a different subdomain from the rest of the Serverless API (serverless-upload.twilio.com
instead of serverless.twilio.com
), and is not supported by the Twilio Helper Libraries at this time.
The create
action accepts these parameters:
Parameter | Description |
---|
Content | The asset to upload. |
AssetSid | The SID of the Asset resource to upload this asset to. |
Path | The path to assign the asset. Must be URL Friendly, without fragments, and ;,?:@+&$()' " are disallowed). |
ServiceSid | The SID of the Asset's Service. |
Visibility | The visibility of the asset. Can be public , protected , or private . |
GET https://serverless.twilio.com/v1/Services/{ServiceSid}/Assets/{AssetSid}/Versions/{Sid}
Property nameTypeRequiredPIIDescription
The SID of the Service to fetch the Asset Version resource from.
The SID of the Asset resource that is the parent of the Asset Version resource to fetch.
Pattern: ^ZH[0-9a-fA-F]{32}$
Min length: 34
Max length: 34
The SID of the Asset Version resource to fetch.
Pattern: ^ZN[0-9a-fA-F]{32}$
Min length: 34
Max length: 34
_20// Download the helper library from https://www.twilio.com/docs/node/install
_20const twilio = require("twilio"); // Or, for ESM: import twilio from "twilio";
_20// Find your Account SID and Auth Token at twilio.com/console
_20// and set the environment variables. See http://twil.io/secure
_20const accountSid = process.env.TWILIO_ACCOUNT_SID;
_20const authToken = process.env.TWILIO_AUTH_TOKEN;
_20const client = twilio(accountSid, authToken);
_20async function fetchAssetVersion() {
_20 const assetVersion = await client.serverless.v1
_20 .services("ServiceSid")
_20 .assets("ZHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")
_20 .assetVersions("ZNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")
_20 console.log(assetVersion.sid);
_10 "sid": "ZNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
_10 "account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
_10 "service_sid": "ServiceSid",
_10 "asset_sid": "ZHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
_10 "path": "/test-path",
_10 "visibility": "public",
_10 "date_created": "2018-11-10T20:00:00Z",
_10 "url": "https://serverless.twilio.com/v1/Services/ZS00000000000000000000000000000000/Assets/ZH00000000000000000000000000000000/Versions/ZN00000000000000000000000000000000"
GET https://serverless.twilio.com/v1/Services/{ServiceSid}/Assets/{AssetSid}/Versions
Property nameTypeRequiredPIIDescription
The SID of the Service to read the Asset Version resource from.
The SID of the Asset resource that is the parent of the Asset Version resources to read.
Pattern: ^ZH[0-9a-fA-F]{32}$
Min length: 34
Max length: 34
Property nameTypeRequiredPIIDescription
How many resources to return in each list page. The default is 50, and the maximum is 1000.
Minimum: 1
Maximum: 1000
The page index. This value is simply for client state.
Minimum: 0
The page token. This is provided by the API.
_19// Download the helper library from https://www.twilio.com/docs/node/install
_19const twilio = require("twilio"); // Or, for ESM: import twilio from "twilio";
_19// Find your Account SID and Auth Token at twilio.com/console
_19// and set the environment variables. See http://twil.io/secure
_19const accountSid = process.env.TWILIO_ACCOUNT_SID;
_19const authToken = process.env.TWILIO_AUTH_TOKEN;
_19const client = twilio(accountSid, authToken);
_19async function listAssetVersion() {
_19 const assetVersions = await client.serverless.v1
_19 .services("ServiceSid")
_19 .assets("ZHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")
_19 .assetVersions.list({ limit: 20 });
_19 assetVersions.forEach((a) => console.log(a.sid));
_12 "asset_versions": [],
_12 "first_page_url": "https://serverless.twilio.com/v1/Services/ZS00000000000000000000000000000000/Assets/ZH00000000000000000000000000000000/Versions?PageSize=50&Page=0",
_12 "key": "asset_versions",
_12 "next_page_url": null,
_12 "previous_page_url": null,
_12 "url": "https://serverless.twilio.com/v1/Services/ZS00000000000000000000000000000000/Assets/ZH00000000000000000000000000000000/Versions?PageSize=50&Page=0"