天天看點

阿裡雲OSS上傳圖檔不能打開的解決辦法

  最近項目需要把附件部署到阿裡雲oss,內建過程中發現上傳的圖檔不能直接打開預覽,隻能下載下傳到本地儲存。

  解決辦法:設定ContentType

  var endpoint="阿裡雲OSS EndPoint";

  // 阿裡雲賬号AccessKey擁有所有API的通路權限,風險很高。強烈建議您建立并使用RAM使用者進行API通路或日常運維,請登入RAM控制台建立RAM使用者。

  var accessKeyId="阿裡雲OSS AccessKeyId";

  var accessKeySecret="阿裡雲OSS AccessKeySecret";

  // 填寫Bucket名稱。

  var bucketName="阿裡雲OSS BucketName";

  var client=new OssClient(endpoint, accessKeyId, accessKeySecret);

  // 建立上傳檔案的元資訊,可以通過檔案元資訊設定HTTP header。

  ObjectMetadata meta=new ObjectMetadata();

  string contentType=IOHelper.GetContentType(Path.GetExtension(path));

  meta.ContentType="image/jpeg";//這裡可自行根據

二手轉讓

附件格式封裝方法擷取

  //meta.ContentEncoding="utf-8";

  var objectName="upload/1.txt"; //這裡需要注意,本地一般用/開頭,但是阿裡雲oss不能用/開頭

  // 填寫本地檔案的完整路徑。如果未指定本地路徑,則預設從示例程式所屬項目對應本地路徑中上傳檔案。

  var localFilename=IOHelper.MapPath(path);

  client.PutObject(bucketName, objectName, localFilename, meta);

  meta.ContentType="image/jpeg";//這段是關鍵,不定義的話阿裡雲oss會預設application/octet-stream,所有附件都會被當成二進制流(或不确定檔案類型)下載下傳。

  還有一個注意點是objectName不能用斜劃線/開頭,往往我們以前做的本地上傳都是/開頭的,這裡需要注意處理一下,否則阿裡雲會傳回錯誤。

繼續閱讀