問題描述
請求回調參數Callback中的callbackUrl部分不合法。
問題原因
您發送的請求中用於上傳回調的Callback參數Base64解碼後會得到一個JSON結構,如果其中callbackUrl部分不是合法的URL,就會導致介面報錯。
callbackUrl參數表示的是檔案上傳成功後,OSS發送回調請求的目的URL地址。介面對該參數的要求是:
支援同時配置最多5個URL,多個URL間以分號(;)分隔。OSS會依次發送請求直到第一個返回成功為止。
如果未配置或者配置值為空白則表示未配置Callback。
支援HTTPS地址。
為了保證正確處理中文等情況,callbackUrl需做URL編碼處理,例如
http://example.com/中文.php?key=value&中文名稱=中文值需要編碼成http://example.com/%E4%B8%AD%E6%96%87.php?key=value&%E4%B8%AD%E6%96%87%E5%90%8D%E7%A7%B0=%E4%B8%AD%E6%96%87%E5%80%BC。
如果該參數中的URL不合法,就會導致介面返回該錯誤。
問題樣本
比如您的請求中Callback參數解碼後得到:
{
"callbackUrl":"www.callback-example.com:test",
"callbackBody":"bucket=${bucket}&object=${object}&etag=${etag}&size=${size}&mimeType=${mimeType}&imageInfo.height=${imageInfo.height}&imageInfo.width=${imageInfo.width}&imageInfo.format=${imageInfo.format}&my_var=${x:my_var}"
}其中callbackUrl參數的值為www.callback-example.com:test,這不是一個合法的URL地址,因為test所處的位置應為連接埠號碼,必須是一個正整數,因此介面會返回該錯誤。
解決方案
請確保Callback參數的原始JSON字串中callbackUrl參數值是正確的URL字串,如果存在中文,需要進行URL編碼處理。
相關文檔
關於上傳回調中的常見錯誤及錯誤排查,請參見上傳回調錯誤及排除。
關於基於Post Policy的使用規則在服務端通過各語言SDK程式碼完成簽名,並且設定上傳回調,然後通過表單直傳資料到OSS的具體操作,請參見服務端簽名直傳並設定上傳回調概述。
關於搭建基於OSS的行動裝置 App資料直傳服務並設定上傳回調的具體操作,請參見快速搭建行動裝置 App上傳回調服務。