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
(VB.NET) 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 Chilkat.Http Dim success As Boolean ' 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 = "qa_data/mp4/rotating_earth.mp4" Dim fac As New Chilkat.FileAccess Dim fileSize As Integer = fac.FileSize(localFilePath) Dim json As New Chilkat.JsonObject json.UpdateInt("filesize",fileSize) json.UpdateString("filetype","video/mp4") json.UpdateString("name","rotating_earth7") 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 Chilkat.HttpResponse = http.PostJson3("https://api.frame.io/v2/assets/039845e8-bffe-4d6b-88d3-c780bae06342/children","application/json",json) If (http.LastMethodSuccess = False) Then Debug.WriteLine(http.LastErrorText) Exit Sub End If Dim sbResponseBody As New Chilkat.StringBuilder resp.GetBodySb(sbResponseBody) Dim jResp As New Chilkat.JsonObject jResp.LoadSb(sbResponseBody) jResp.EmitCompact = False Debug.WriteLine("Response Body:") Debug.WriteLine(jResp.Emit()) Dim respStatusCode As Integer = resp.StatusCode Debug.WriteLine("Response Status Code = " & respStatusCode) If (respStatusCode >= 400) Then Debug.WriteLine("Response Header:") Debug.WriteLine(resp.Header) Debug.WriteLine("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 Integer = jResp.SizeOfArray("upload_urls") Dim sizePerChunk As Integer = (fileSize + numChunks - 1) / numChunks Debug.WriteLine("numChunks = " & numChunks) Debug.WriteLine("sizePerChunk = " & sizePerChunk) success = fac.OpenForRead(localFilePath) If (success = False) Then Debug.WriteLine(fac.LastErrorText) Exit Sub End If Dim bd As New Chilkat.BinData Dim httpForUpload As New Chilkat.Http httpForUpload.SetRequestHeader("x-amz-acl","private") Dim i As Integer = 0 While (i < numChunks) bd.Clear() success = fac.ReadBlockBd(i,sizePerChunk,bd) jResp.I = i Dim uploadUrl As String = jResp.StringOf("upload_urls[i]") ' Send the chunk in a PUT: Debug.WriteLine("PUT chunk " & (i + 1)) Debug.WriteLine("URL: " & uploadUrl) ' PUT https://frameio-uploads-production.s3/etc/etc ' Content-Type: video/mp4 ' x-amz-acl: private resp = httpForUpload.PBinaryBd("PUT",uploadUrl,bd,"video/mp4",False,False) If (httpForUpload.LastMethodSuccess = False) Then Debug.WriteLine(httpForUpload.LastErrorText) Exit Sub End If Debug.WriteLine("response status: " & resp.StatusCode) i = i + 1 End While fac.FileClose() Debug.WriteLine("File uploaded.") |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.