一、問題概述:
1、使用URL訪問OSS存儲的圖片時顯示XML代碼
2、使用URL訪問OSS存儲的圖片時自動下載
二、解決方式:
如果大家對HTTP頭部內容不清晰的可以去百度了解一下再看
解決問題一:
問題一出現的原因:因為在OSS的Bucket權限設置為私有
解決方式:將Bucket權限設置為公共讀即可。但是我猜你之后多半會遇到第二個問題,那么就來解決第二個問題。
解決問題二:
問題二出現的原因:沒有對HTTP頭進行設置,但是在阿里云2020年新發布的通知中需要自定義域名,使用默認域名時為下載,設置了inline貌似也不管用。
可以參考文檔:https://help.aliyun.com/knowledge_detail/39545.html#ZkKEz
解決方式:
解決方式有兩種。如果圖片內容較少或不再進行增加時可以直接在OSS控制臺進行設置。
解決方式一 如圖:
解決方式二:JavaSDK解決方式
使用SDK中的ObjectMetadata類進行HTTP頭設置。在上傳文件時進行設置
具體代碼:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
將ContentDisposition設置為inline即可 // Endpoint以杭州為例,其它Region請按實際情況填寫。 String endpoint = "http://oss-cn-hangzhou.aliyuncs.com" ; // 阿里云主賬號AccessKey擁有所有API的訪問權限,風險很高。強烈建議您創建并使用RAM賬號進行API訪問或日常運維,請登錄 https://ram.console.aliyun.com 創建RAM賬號。 String accessKeyId = "<yourAccessKeyId>" ; String accessKeySecret = "<yourAccessKeySecret>" ; String content = "Hello OSS" ; // 創建上傳文件的元信息,可以通過文件元信息設置HTTP header。 ObjectMetadata meta = new ObjectMetadata(); String md5 = BinaryUtil.toBase64String(BinaryUtil.calculateMd5(content.getBytes())); // 開啟文件內容MD5校驗。開啟后OSS會把您提供的MD5與文件的MD5比較,不一致則拋出異常。 meta.setContentMD5(md5); // 指定上傳的內容類型。內容類型決定瀏覽器將以什么形式、什么編碼讀取文件。如果沒有指定則根據文件的擴展名生成,如果沒有擴展名則為默認值application/octet-stream。 meta.setContentType( "text/plain" ); // 設置內容被下載時的名稱。 meta.setContentDisposition( "attachment; filename=\"DownloadFilename\"" ); // 設置上傳文件的長度。如超過此長度,則會被截斷,為設置的長度。如不足,則為上傳文件的實際長度。 meta.setContentLength(content.length()); // 設置內容被下載時網頁的緩存行為。 meta.setCacheControl( "Download Action" ); // 設置緩存過期時間,格式是格林威治時間(GMT)。 meta.setExpirationTime(DateUtil.parseIso8601Date( "2022-10-12T00:00:00.000Z" )); // 設置內容被下載時的編碼格式。 meta.setContentEncoding( "utf-8" ); // 設置header。 meta.setHeader( "<yourHeader>" , "<yourHeaderValue>" ); // 創建OSSClient實例。 OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret); // 上傳文件。 ossClient.putObject( "<yourBucketName>" , "<yourObjectName>" , new ByteArrayInputStream(content.getBytes()), meta); // 關閉OSSClient。 ossClient.shutdown(); |
參考阿里云官方文檔:https://help.aliyun.com/document_detail/84840.html
到此這篇關于解決阿里云OSS使用URL無法訪問圖片的兩種方法的文章就介紹到這了,更多相關阿里云OSS URL無法訪問內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!
原文鏈接:https://blog.csdn.net/weixin_43556636/article/details/105394117