幾行(如下)生成簽名的URL,瀏覽器被重定向到S3下載文件。AWS S3:使用'response-content-disposition'強制文件下載
當內容類型設置爲Octet Stream時,我正面臨着着名的Chrome瀏覽器未從S3下載PDF文件的問題。
解決方案是強制使用chrome下載文件,而不是嘗試讀取/打開它。
我嘗試添加'response-content-disposition'來標記以及URL,但它沒有奏效。
如何在生成url時使用'response-content-disposition'標題?
String codedFilename= EncodingUtil.urlEncode(bucketPath,'UTF-8');
String stringtosign = 'GET\n\n\n'+Lexpires+'\n/'+bucketName+'/'+codedFilename;
String signed = make_sig(stringtosign);
String codedsigned = EncodingUtil.urlEncode(signed,'UTF-8');
String url = serverURL+'/'+bucketName+'/'+codedFilename+'?AWSAccessKeyId='+awskey+'&Expires='+Lexpires+'&Signature='+codedsigned;
注意: - 這是salesforce-apex語法。
自定義標頭在文件本身上設置。這些頭文件將在下載文件時發送到客戶端。我相信你只能在文件第一次上傳的時候這樣做。 – datasage
@datasage,S3文檔沒有爲PUT請求指定'response-content-type'標籤。因此,我認爲我們無法在上傳時設定該標題(但我可能會錯誤) –