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
(Visual Basic 6.0) Frame.io - Upload an AssetUpload an asset to Frame.io For more information, see https://docs.frame.io/docs/uploading-assets
' This example assumes the Chilkat API to have been previously unlocked. ' See Global Unlock Sample for sample code. Dim http As New ChilkatHttp Dim success As Long ' 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" ' } Dim localFilePath As String localFilePath = "qa_data/mp4/rotating_earth.mp4" Dim fac As New CkFileAccess Dim fileSize As Long fileSize = fac.FileSize(localFilePath) Dim json As New ChilkatJsonObject 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 Dim resp As ChilkatHttpResponse Set resp = http.PostJson3("https://api.frame.io/v2/assets/039845e8-bffe-4d6b-88d3-c780bae06342/children","application/json",json) If (http.LastMethodSuccess = 0) Then Debug.Print http.LastErrorText Exit Sub End If Dim sbResponseBody As New ChilkatStringBuilder success = resp.GetBodySb(sbResponseBody) Dim jResp As New ChilkatJsonObject success = jResp.LoadSb(sbResponseBody) jResp.EmitCompact = 0 Debug.Print "Response Body:" Debug.Print jResp.Emit() Dim respStatusCode As Long respStatusCode = resp.StatusCode Debug.Print "Response Status Code = " & respStatusCode If (respStatusCode >= 400) Then Debug.Print "Response Header:" Debug.Print resp.Header Debug.Print "Failed." Exit Sub 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. Dim numChunks As Long numChunks = jResp.SizeOfArray("upload_urls") Dim sizePerChunk As Long sizePerChunk = (fileSize + numChunks - 1) / numChunks Debug.Print "numChunks = " & numChunks Debug.Print "sizePerChunk = " & sizePerChunk success = fac.OpenForRead(localFilePath) If (success = 0) Then Debug.Print fac.LastErrorText Exit Sub End If Dim bd As New ChilkatBinData Dim httpForUpload As New ChilkatHttp httpForUpload.SetRequestHeader "x-amz-acl","private" Dim i As Long i = 0 Do While (i < numChunks) success = bd.Clear() success = fac.ReadBlockBd(i,sizePerChunk,bd) jResp.I = i Dim uploadUrl As String uploadUrl = jResp.StringOf("upload_urls[i]") ' Send the chunk in a PUT: Debug.Print "PUT chunk " & (i + 1) Debug.Print "URL: " & uploadUrl ' PUT https://frameio-uploads-production.s3/etc/etc ' Content-Type: video/mp4 ' x-amz-acl: private Set resp = httpForUpload.PBinaryBd("PUT",uploadUrl,bd,"video/mp4",0,0) If (httpForUpload.LastMethodSuccess = 0) Then Debug.Print httpForUpload.LastErrorText Exit Sub End If Debug.Print "response status: " & resp.StatusCode i = i + 1 Loop fac.FileClose Debug.Print "File uploaded." |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.