2017-08-24 58 views
0

因此,我通過Http-Request-Trigger將下面的JSON發佈到邏輯應用程序。Logic Apps同名Blob覆蓋文件

{ 
    "RequestMetaDataValue": { 
     "RequestMetaDataUuid": "33333333-3333-3333-3333-333333333333" 
    }, 
    "OtherStuff": [{ 
     "OtherStuffUuid": "11111111-1111-1111-1111-1111", 
     "OtherStuffString": "peanut" 
    }, 
    { 
     "OtherStuffUuid": "e5dceac3-51cb-477b-b3a9-bd08f351cc0e", 
     "OtherStuffString": "banana" 
    }] 
} 

Logic App解析Json,所以我可以提取RequestMetaDataUuid值。在這種情況下,「33333333-3333-3333-3333-333333333333」。

然後我用一個創建的Blob(行動?)因爲在這裏看到:

https://docs.microsoft.com/en-us/azure/connectors/connectors-create-api-azureblobstorage

它看起來像在我的設計

enter image description here

所以相當直截了當。

這是問題所在。

如果我重新發送(相同)Json,blob /文件獲取覆蓋了blob中的

例如,如果我改變

"OtherStuffUuid": "11111111-1111-1111-1111-1111", 

"OtherStuffUuid": "aaaaaaaa-1111-1111-1111-1111", 

最初擁有 「OtherStuffUuid」 團塊 「11111111-1111-1111-1111-1111」 去永不永不土地。 :(

如果沒有無論如何要防止覆蓋?

反正是有檢查BLOB /文件已經存在(我的偏好)在Blob存儲?

基礎上追加

答案,我試圖添加以下預檢查

enter image description here

文檔在這裏:

https://docs.microsoft.com/en-us/connectors/azureblob/#Get_Blob_Metadata_using_path

使用路徑操作ID獲取的Blob元數據:GetFileMetadataByPath這 操作使用路徑檢索BLOB的元數據。

所需參數的Blob路徑字符串指定唯一路徑BLOB 鍵:路徑

返回身體BlobMetadata斑點元

回答

1

您可以使用「使用路徑獲取的Blob元數據」行動檢查爲blob的存在。然後,您可以使用條件(根據get blob元數據操作結果的狀態代碼)根據blob是否已存在來運行操作。答覆

'Get Blob Metadata using path action'

+0

感謝.........我沒有看到的ActionResult和/或的StatusCode。我只看到: 斑點元 顯示名稱 ETag的 FileLocator 標識 IsFolder 上次更改 的MediaType 名稱 路徑 大小。 (關於它的信息..如果它存在)我沒有看到表達式窗口中的「isnull」檢查。 – granadaCoder

+0

我附加了問題以顯示試圖做你建議的屏幕截圖。 – granadaCoder

+0

您需要切換到代碼視圖來調整條件:條件表達式需要爲「@equals(outputs('Get_Blob_Metadata_using_path')。statusCode,404)」。您可能還需要調整條件卡中的'運行',以便它運行,而不管get blob元數據操作是否成功失敗(您可以通過設計器執行此操作,或者將'runAfter'設置爲{「Get_Blob_Metadata_using_path 「:[」成功「,」失敗「]}通過代碼視圖) –