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
(AutoIt) 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. $oHttp = ObjCreate("Chilkat.Http") Local $bSuccess ; 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" ; } Local $sLocalFilePath = "qa_data/mp4/rotating_earth.mp4" $oFac = ObjCreate("Chilkat.FileAccess") Local $iFileSize = $oFac.FileSize($sLocalFilePath) $oJson = ObjCreate("Chilkat.JsonObject") $oJson.UpdateInt("filesize",$iFileSize) $oJson.UpdateString("filetype","video/mp4") $oJson.UpdateString("name","rotating_earth7") $oJson.UpdateString("type","file") $oHttp.SetRequestHeader "content-type","application/json" ; Adds the "Authorization: Bearer <FRAME_IO_DEV_TOKEN>" header. $oHttp.AuthToken = "<FRAME_IO_DEV_TOKEN>" ; Uploading to asset ID: 039845e8-bffe-4d6b-88d3-c780bae06342 Local $oResp = $oHttp.PostJson3("https://api.frame.io/v2/assets/039845e8-bffe-4d6b-88d3-c780bae06342/children","application/json",$oJson) If ($oHttp.LastMethodSuccess = False) Then ConsoleWrite($oHttp.LastErrorText & @CRLF) Exit EndIf $oSbResponseBody = ObjCreate("Chilkat.StringBuilder") $oResp.GetBodySb($oSbResponseBody) $oJResp = ObjCreate("Chilkat.JsonObject") $oJResp.LoadSb($oSbResponseBody) $oJResp.EmitCompact = False ConsoleWrite("Response Body:" & @CRLF) ConsoleWrite($oJResp.Emit() & @CRLF) Local $iRespStatusCode = $oResp.StatusCode ConsoleWrite("Response Status Code = " & $iRespStatusCode & @CRLF) If ($iRespStatusCode >= 400) Then ConsoleWrite("Response Header:" & @CRLF) ConsoleWrite($oResp.Header & @CRLF) ConsoleWrite("Failed." & @CRLF) Exit EndIf ; 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. Local $iNumChunks = $oJResp.SizeOfArray("upload_urls") Local $iSizePerChunk = ($iFileSize + $iNumChunks - 1) / $iNumChunks ConsoleWrite("numChunks = " & $iNumChunks & @CRLF) ConsoleWrite("sizePerChunk = " & $iSizePerChunk & @CRLF) $bSuccess = $oFac.OpenForRead($sLocalFilePath) If ($bSuccess = False) Then ConsoleWrite($oFac.LastErrorText & @CRLF) Exit EndIf $oBd = ObjCreate("Chilkat.BinData") $oHttpForUpload = ObjCreate("Chilkat.Http") $oHttpForUpload.SetRequestHeader "x-amz-acl","private" Local $i = 0 While ($i < $iNumChunks) $oBd.Clear() $bSuccess = $oFac.ReadBlockBd($i,$iSizePerChunk,$oBd) $oJResp.I = $i Local $sUploadUrl = $oJResp.StringOf("upload_urls[i]") ; Send the chunk in a PUT: ConsoleWrite("PUT chunk " & ($i + 1) & @CRLF) ConsoleWrite("URL: " & $sUploadUrl & @CRLF) ; PUT https://frameio-uploads-production.s3/etc/etc ; Content-Type: video/mp4 ; x-amz-acl: private $oResp = $oHttpForUpload.PBinaryBd("PUT",$sUploadUrl,$oBd,"video/mp4",False,False) If ($oHttpForUpload.LastMethodSuccess = False) Then ConsoleWrite($oHttpForUpload.LastErrorText & @CRLF) Exit EndIf ConsoleWrite("response status: " & $oResp.StatusCode & @CRLF) $i = $i + 1 Wend $oFac.FileClose ConsoleWrite("File uploaded." & @CRLF) |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.