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
(PowerShell) Frame.io - Upload an AssetUpload an asset to Frame.io For more information, see https://docs.frame.io/docs/uploading-assets
Add-Type -Path "C:\chilkat\ChilkatDotNet47-9.5.0-x64\ChilkatDotNet47.dll" # This example assumes the Chilkat API to have been previously unlocked. # See Global Unlock Sample for sample code. $http = New-Object 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" $fac = New-Object Chilkat.FileAccess $fileSize = $fac.FileSize($localFilePath) $json = New-Object 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 $resp = $http.PostJson3("https://api.frame.io/v2/assets/039845e8-bffe-4d6b-88d3-c780bae06342/children","application/json",$json) if ($http.LastMethodSuccess -eq $false) { $($http.LastErrorText) exit } $sbResponseBody = New-Object Chilkat.StringBuilder $resp.GetBodySb($sbResponseBody) $jResp = New-Object Chilkat.JsonObject $jResp.LoadSb($sbResponseBody) $jResp.EmitCompact = $false $("Response Body:") $($jResp.Emit()) $respStatusCode = $resp.StatusCode $("Response Status Code = " + $respStatusCode) if ($respStatusCode -ge 400) { $("Response Header:") $($resp.Header) $("Failed.") exit } # 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 $("numChunks = " + $numChunks) $("sizePerChunk = " + $sizePerChunk) $success = $fac.OpenForRead($localFilePath) if ($success -eq $false) { $($fac.LastErrorText) exit } $bd = New-Object Chilkat.BinData $httpForUpload = New-Object Chilkat.Http $httpForUpload.SetRequestHeader("x-amz-acl","private") $i = 0 while (($i -lt $numChunks)) { $bd.Clear() $success = $fac.ReadBlockBd($i,$sizePerChunk,$bd) $jResp.I = $i $uploadUrl = $jResp.StringOf("upload_urls[i]") # Send the chunk in a PUT: $("PUT chunk " + $i + 1) $("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 -eq $false) { $($httpForUpload.LastErrorText) exit } $("response status: " + $resp.StatusCode) $i = $i + 1 } $fac.FileClose() $("File uploaded.") |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.