Upload-API von Anhängen nach letztem Update geändert?

Post Reply
hoeni
Posts: 47
Joined: 09. Mar 2020, 11:38
Contact:

Upload-API von Anhängen nach letztem Update geändert?

Post by hoeni » 21. Nov 2022, 08:59

Hallo zusammen,

mit dem letzten Update auf Version 11.0.2 hat Matrix die Anhangs-Thematik komplett überarbeitet und dabei u.a. auch eine neue Meta-Tabelle DWPFileInfo eingebaut.
Im Zuge dessen scheint auch die Upload-API überarbeitet worden zu sein. Bisher konnte man mit folgendem Code in Powershell Anhänge hochladen.

Code: Select all

Add-Type -AssemblyName System.Web

$baseurl = "https://<esm-url>/"
$bearertoken = "<token>"

$entity = 'XY'
$objectIds = 'XY'
$Filepath = "C:\XY"

$Fileurlencoded = [System.Web.HttpUtility]::UrlEncode((Split-Path $Filepath -leaf)) 

### Get Token
$headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
$headers.Add("Authorization", "Bearer $bearertoken")

$tokenResponse = Invoke-RestMethod "$baseUrl/M42Services/api/ApiToken/GenerateAccessTokenFromApiToken/" -Method 'POST' -Headers $headers -Body $body

### Run Webservice-Call - Upload File
$headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
$headers.Add("Authorization", "Bearer "+$tokenResponse.RawToken)
$headers.Add("Content-Type", "application/octet-stream")

$response = Invoke-WebRequest "$("$baseurl/m42Services/api/filestorage/add?entity=$entity&objectIds=$objectIds&fileName=$Fileurlencoded")" -Method 'POST' -Headers $headers -InFile $Filepath
$returnCode = $response.StatusCode
Nach dem aktuellen Update ist das nicht mehr möglich. Es kommt ein Fehlercode 500 Internal Server Error.

Hat schon jemand Erfahrungen damit gesammelt, wie der Upload jetzt vorgenommen werden kann? Muss man evtl. erst eine File-ID generieren lassen? Die Technical Preview mit den Änderungen gibt es ja schon seit September.

Imad
Posts: 1
Joined: 02. Dec 2021, 15:43
Contact:

Re: Upload-API von Anhängen nach letztem Update geändert?

Post by Imad » 02. Jan 2023, 17:03

Hallo,
ja leider funktioniert seit dem letzten Update die Abfrage filestorage/add nicht mehr.

Das Hochladen von Files ist mit folgendem Powershell-Skript möglich:

Code: Select all

$apiToken = "xyz"
$baseUrl = "xyz"
$FilePath="C:\test.csv"
$FileName= "test.csv"
$typeId= "xyz"
$objectId= "xyz"

### Get Token
$headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
$headers.Add("Authorization", "Bearer $apiToken")
$tokenResponse = Invoke-RestMethod "$baseUrl/M42Services/api/ApiToken/GenerateAccessTokenFromApiToken/" -Method 'POST' -Headers $headers -Body $body


## Get Upload URL
$headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
$headers.Add("Content-Type", "application/json;charset=UTF-8")
$headers.Add("Authorization", "Bearer "+$tokenResponse.RawToken)
$headers.Add("Cookie", "explicitLanguage=de-DE")

$body = @{
    uniqueFileId= [guid]::NewGuid().ToString();
    storageId = "04440f75-69dd-c261-d1b9-08da16ee04f8";
    name= $FileName;
    typeId= $typeId;
    objectId= $objectId;
}

$UploadURL = Invoke-RestMethod $baseUrl'/m42Services/api/fileStorage/getUploadUrl' -Method 'POST' -Headers $headers -Body (ConvertTo-Json $body)

$fileID = $UploadURL.FileId
## start Upload 
$headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
$headers.Add("Authorization", "Bearer "+$tokenResponse.RawToken)
$headers.Add("Cookie", "explicitLanguage=de-DE")


$Upload= Invoke-RestMethod $baseUrl'/m42Services/api/fileStorage/upload?fileId='$fileID  -Method 'POST' -ContentType 'application/octet-stream' -InFile $FilePath -Headers $headers

## finish Upload 
$headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
$headers.Add("Authorization", "Bearer "+$tokenResponse.RawToken)


$Upload= Invoke-RestMethod $baseUrl'/m42Services/api/commonStorage/finishUploading/'$fileID  -Method 'POST' -Headers $headers
Mit freundlichen Grüßen

Imad Saleh
Consultant
Software Development

imad.saleh@futuredat.com
futuredat.com

hoeni
Posts: 47
Joined: 09. Mar 2020, 11:38
Contact:

Re: Upload-API von Anhängen nach letztem Update geändert?

Post by hoeni » 04. Jan 2023, 09:34

Perfekt, danke für das Skript. Das erspart mir doch diverse Workarounds mit passwortgeschütztem Mail-Versand.

Post Reply

Return to “Customizing und Reporting”

Who is online

Users browsing this forum: No registered users and 2 guests