Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(VBScript) Frame.io - Upload an AssetUpload an asset to Frame.io For more information, see https://docs.frame.io/docs/uploading-assets
Dim fso, outFile Set fso = CreateObject("Scripting.FileSystemObject") 'Create a Unicode (utf-16) output text file. Set outFile = fso.CreateTextFile("output.txt", True, True) ' This example assumes the Chilkat API to have been previously unlocked. ' See Global Unlock Sample for sample code. ' For versions of Chilkat < 10.0.0, use CreateObject("Chilkat_9_5_0.Http") set http = CreateObject("Chilkat.Http") ' Implements the following CURL command: ' curl --request POST \ ' --url https://api.frame.io/v2/assets/<ASSET_ID>/children \ ' --header 'authorization: Bearer <FRAME_IO_DEV_TOKEN>' \ ' --header 'content-type: application/json' \ ' --data '{"filesize":1570024 ,"filetype":"video/mp4","name":"rotating_earth","type":"file"}' ' Use the following online tool to generate HTTP code from a CURL command ' Convert a cURL Command to HTTP Source Code ' Use this online tool to generate code from sample JSON: ' Generate Code to Create JSON ' The following JSON is sent in the request body. ' { ' "filesize": 1570024, ' "filetype": "video/mp4", ' "name": "rotating_earth", ' "type": "file" ' } localFilePath = "qa_data/mp4/rotating_earth.mp4" ' For versions of Chilkat < 10.0.0, use CreateObject("Chilkat_9_5_0.FileAccess") set fac = CreateObject("Chilkat.FileAccess") fileSize = fac.FileSize(localFilePath) ' For versions of Chilkat < 10.0.0, use CreateObject("Chilkat_9_5_0.JsonObject") set json = CreateObject("Chilkat.JsonObject") success = json.UpdateInt("filesize",fileSize) success = json.UpdateString("filetype","video/mp4") success = json.UpdateString("name","rotating_earth7") success = json.UpdateString("type","file") http.SetRequestHeader "content-type","application/json" ' Adds the "Authorization: Bearer <FRAME_IO_DEV_TOKEN>" header. http.AuthToken = "<FRAME_IO_DEV_TOKEN>" ' Uploading to asset ID: 039845e8-bffe-4d6b-88d3-c780bae06342 ' resp is a Chilkat.HttpResponse Set resp = http.PostJson3("https://api.frame.io/v2/assets/039845e8-bffe-4d6b-88d3-c780bae06342/children","application/json",json) If (http.LastMethodSuccess = 0) Then outFile.WriteLine(http.LastErrorText) WScript.Quit End If ' For versions of Chilkat < 10.0.0, use CreateObject("Chilkat_9_5_0.StringBuilder") set sbResponseBody = CreateObject("Chilkat.StringBuilder") success = resp.GetBodySb(sbResponseBody) ' For versions of Chilkat < 10.0.0, use CreateObject("Chilkat_9_5_0.JsonObject") set jResp = CreateObject("Chilkat.JsonObject") success = jResp.LoadSb(sbResponseBody) jResp.EmitCompact = 0 outFile.WriteLine("Response Body:") outFile.WriteLine(jResp.Emit()) respStatusCode = resp.StatusCode outFile.WriteLine("Response Status Code = " & respStatusCode) If (respStatusCode >= 400) Then outFile.WriteLine("Response Header:") outFile.WriteLine(resp.Header) outFile.WriteLine("Failed.") WScript.Quit End If ' Upload in chunks to the pre-signed S3 upload URLs. ' There are ways to do this in parallel, but for simplicity we'll show how to upload ' one chunk after another. numChunks = jResp.SizeOfArray("upload_urls") sizePerChunk = (fileSize + numChunks - 1) / numChunks outFile.WriteLine("numChunks = " & numChunks) outFile.WriteLine("sizePerChunk = " & sizePerChunk) success = fac.OpenForRead(localFilePath) If (success = 0) Then outFile.WriteLine(fac.LastErrorText) WScript.Quit End If ' For versions of Chilkat < 10.0.0, use CreateObject("Chilkat_9_5_0.BinData") set bd = CreateObject("Chilkat.BinData") ' For versions of Chilkat < 10.0.0, use CreateObject("Chilkat_9_5_0.Http") set httpForUpload = CreateObject("Chilkat.Http") httpForUpload.SetRequestHeader "x-amz-acl","private" i = 0 Do While (i < numChunks) success = bd.Clear() success = fac.ReadBlockBd(i,sizePerChunk,bd) jResp.I = i uploadUrl = jResp.StringOf("upload_urls[i]") ' Send the chunk in a PUT: outFile.WriteLine("PUT chunk " & (i + 1)) outFile.WriteLine("URL: " & uploadUrl) ' PUT https://frameio-uploads-production.s3/etc/etc ' Content-Type: video/mp4 ' x-amz-acl: private ' resp is a Chilkat.HttpResponse Set resp = httpForUpload.PBinaryBd("PUT",uploadUrl,bd,"video/mp4",0,0) If (httpForUpload.LastMethodSuccess = 0) Then outFile.WriteLine(httpForUpload.LastErrorText) WScript.Quit End If outFile.WriteLine("response status: " & resp.StatusCode) i = i + 1 Loop fac.FileClose outFile.WriteLine("File uploaded.") outFile.Close |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.