How to update an object from an Object Storage bucket
This guide walks you through updating an object from an Object Storage bucket using the Azion API, Azion CLI, and Azion Runtime.
Updating an object from a bucket
Requirements
To update a bucket:
azion update edge-storage object
Azion CLI will present a series of interactions, so the object can be updated. Run azion update edge-storage bucket -h
for further information about the data that can be updated.
You can create an function to update an object from your bucket. To do so:
- Access Azion Console > Functions.
- Click the + Function button.
- Name your function. Example:
object-update
. - In the Code tab, add the following JavaScript code, passing your bucket’s name and the object key:
import Storage from "azion:storage";
async function handleRequest(event) { try{ const bucket = “mybucket”; const storage = new Storage(bucket); const key = "test"; const inputStream = event.request.body; let contentLength = event.request.headers.get("content-length"); await storage.put(key, inputStream, { "content-length": contentLength }); return new Response("OK"); }catch(error){ return new Response(error, {status:500}); }}
addEventListener("fetch", (event) => { event.respondWith(handleRequest(event));});
- Click the Save button.
Once you have the function ready, you need to create an applications that will proxy the process for the bucket and instantiate the function.
Go to Applications first stepsGo to how to instantiate an functionRun the following PUT
request in your terminal, replacing [TOKEN VALUE]
with your personal token, <bucket_name>
with the name of the bucket, <object_key>
with the key of the object, and path/file.src
with the path to your new file:
curl --location --request PUT 'https://api.azion.com/v4/storage/buckets/<bucket_name>/objects/<object_key>' --header 'Accept: application/json' --header 'Authorization: Token [TOKEN VALUE]' --header 'Content-Type: application/octet-stream' --data '@'
You should receive a response similar to this:
{ "state": "executed", "data": { "object_key": "people-100.txt" }}