您好,登錄后才能下訂單哦!
這篇文章主要介紹阿里云OSS使用URL無法訪問圖片怎么辦,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
一、問題概述:
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頭設置。在上傳文件時進行設置
具體代碼:
將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();
以上是阿里云OSS使用URL無法訪問圖片怎么辦的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。