" />

最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

解決springcloud阿里云OSS文件訪問跨域問題的實(shí)現(xiàn)

 更新時(shí)間:2022年06月07日 14:58:16   作者:wu55555  
本文主要介紹了解決springcloud阿里云OSS文件訪問跨域問題的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

引言

最近在高德地圖中引用阿里云OSS存儲(chǔ)的圖片時(shí),出現(xiàn)跨域訪問問題,特此記錄,以方便后續(xù)同學(xué)參考

解決

1、在阿里云OSS后臺(tái)管理中,進(jìn)入權(quán)限管理,進(jìn)入跨域設(shè)置,添加跨域規(guī)則,設(shè)置來(lái)源為*

2、至此配置完成后訪問圖片還是會(huì)出現(xiàn)跨域問題,這是因?yàn)镺SS文件默認(rèn)會(huì)開啟緩存,及后續(xù)訪問的實(shí)際上是緩存的文件,這就會(huì)導(dǎo)致不能匹配到我們上述配置的跨域規(guī)則

于是我們需要將緩存禁用掉,如果文件就一兩個(gè)的話,可以直接在后臺(tái)中設(shè)置禁用緩存,將HTTP頭中Cache-Control設(shè)置為no-cache

3、因?yàn)槟壳鞍⒗镌坪笈_(tái)只支持單個(gè)文件的HTTP頭設(shè)置,并不支持批量設(shè)置,所以到有多個(gè)文件或者后續(xù)上傳的文件都不需要緩存時(shí)就不能滿足了

那么我們?nèi)绾蝸?lái)實(shí)現(xiàn)這個(gè)批量禁用緩存的需求呢。答案就是在上傳文件到OSS的時(shí)候在請(qǐng)求頭中設(shè)置Cache-Controlno-cache

首先上傳阿里云OSS的接口是基于aliyun-sdk-oss依賴的

<dependency>
            <groupId>com.aliyun.oss</groupId>
            <artifactId>aliyun-sdk-oss</artifactId>
        </dependency>

其次我們觀察該依賴包提供的上傳文件接口,會(huì)發(fā)現(xiàn)其中有一個(gè)方法可以設(shè)置ObjectMetadata

ObjectMetadata中是可以設(shè)置Header的

那么解決的方法就很清晰了,我們只需要在調(diào)用該文件上傳put方法時(shí),在ObjectMetadata中設(shè)置上我們需要的Header即可,參考代碼如下:

    private final OSSClient ossClient;
    
    @PostMapping("/put-file-with-nocache")
	public PutObjectResult putFileWithNoCache(@RequestParam MultipartFile file) {
		String fileName = file.getOriginalFilename();
		ObjectMetadata metadata = new ObjectMetadata();
		// 取消文件緩存,文件每次都會(huì)從OSS服務(wù)器獲取
		metadata.setHeader("Cache-Control", "no-cache");
		metadata.setHeader("Expires", "0");
		PutObjectResult bucketName = ossClient.putObject("bucketName", fileName, file.getInputStream(), metadata);
		return bucketName;
	}

之后通過該接口上傳的圖片就不會(huì)再有跨域問題了,我們?cè)跍y(cè)試工具中調(diào)用訪問該圖片,也會(huì)發(fā)現(xiàn)其response中會(huì)多出一個(gè)cache-control: no-cache的響應(yīng)頭了。

 到此這篇關(guān)于解決springcloud阿里云OSS文件訪問跨域問題的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)springcloud OSS文件跨域內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Spring AI實(shí)現(xiàn)智能聊天模型

    Spring AI實(shí)現(xiàn)智能聊天模型

    通過本文的介紹,我們深入了解了Spring AI項(xiàng)目的優(yōu)勢(shì)和特性,以及在實(shí)際應(yīng)用中的快速實(shí)戰(zhàn)示例,Spring AI作為一個(gè)高度抽象化的人工智能應(yīng)用程序開發(fā)框架,為開發(fā)者提供了便捷的模型支持、靈活的功能模塊交換和優(yōu)化能力
    2024-11-11
  • Java并發(fā)編程之常用的多線程實(shí)現(xiàn)方式分析

    Java并發(fā)編程之常用的多線程實(shí)現(xiàn)方式分析

    這篇文章主要介紹了Java并發(fā)編程之常用的多線程實(shí)現(xiàn)方式,結(jié)合實(shí)例形式分析了java并發(fā)編程中多線程的相關(guān)原理、實(shí)現(xiàn)方法與操作注意事項(xiàng),需要的朋友可以參考下
    2020-02-02
  • SpringBoot定時(shí)調(diào)度之Timer與Quartz詳解

    SpringBoot定時(shí)調(diào)度之Timer與Quartz詳解

    Java?中常用的定時(shí)調(diào)度框架有以下幾種:Timer、ScheduledExecutorService、Spring?Task和Quartz,本文主要來(lái)和大家講講他們的具體使用,需要的可以參考一下
    2023-06-06
  • 總結(jié)Java常用到的六個(gè)加密技術(shù)和代碼

    總結(jié)Java常用到的六個(gè)加密技術(shù)和代碼

    大家要記住現(xiàn)代密碼學(xué)最重要的原則柯克霍夫原則:數(shù)據(jù)的安全基于密鑰而不是算法的保密。也就是說即使密碼系統(tǒng)的任何細(xì)節(jié)已為人悉知,只要密匙未洩漏,它也應(yīng)是安全的。這篇文章給大家介紹了6個(gè)常用的加密技術(shù)和代碼。
    2016-07-07
  • Sentinel 斷路器在Spring Cloud使用詳解

    Sentinel 斷路器在Spring Cloud使用詳解

    Sentinel是阿里巴巴開源的一款微服務(wù)流量控制組件,主要以流量為切入點(diǎn),從流量路由、流量控制、流量整形、熔斷降級(jí)、系統(tǒng)自適應(yīng)過載保護(hù)、熱點(diǎn)流量防護(hù)等多個(gè)維度來(lái)幫助開發(fā)者保障微服務(wù)的穩(wěn)定性,本文介紹Sentinel 斷路器在Spring Cloud使用,感興趣的朋友一起看看吧
    2025-02-02
  • Spring?AOPr如何打通兩個(gè)切面之間的通信

    Spring?AOPr如何打通兩個(gè)切面之間的通信

    本文主要介紹了Spring?AOPr如何打通兩個(gè)切面之間的通信,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-03-03
  • 詳解Maven多模塊打包遇到的問題解決方法

    詳解Maven多模塊打包遇到的問題解決方法

    這篇文章主要介紹了詳解Maven多模塊打包遇到的問題解決方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • Java OpenCV4.0.0實(shí)現(xiàn)實(shí)時(shí)人臉識(shí)別

    Java OpenCV4.0.0實(shí)現(xiàn)實(shí)時(shí)人臉識(shí)別

    這篇文章主要為大家詳細(xì)介紹了Java OpenCV4.0.0實(shí)現(xiàn)實(shí)時(shí)人臉識(shí)別,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • SpringBoot+Vue.js實(shí)現(xiàn)前后端分離的文件上傳功能

    SpringBoot+Vue.js實(shí)現(xiàn)前后端分離的文件上傳功能

    這篇文章主要介紹了SpringBoot+Vue.js實(shí)現(xiàn)前后端分離的文件上傳功能,需要的朋友可以參考下
    2018-06-06
  • Java中常用數(shù)據(jù)類型的輸入輸出詳解

    Java中常用數(shù)據(jù)類型的輸入輸出詳解

    本文主要介紹了Java中幾個(gè)常用的數(shù)據(jù)類型是如何輸入和輸出的,例如:Char型、int型、double型、數(shù)組、字符串等,對(duì)我們學(xué)習(xí)java有一定的幫助,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)學(xué)習(xí)
    2021-12-12

最新評(píng)論

临沧市| 星座| 曲阜市| 抚顺市| 岑巩县| 广宗县| 宜良县| 龙口市| 宣恩县| 文化| 津市市| 中超| 芜湖市| 新巴尔虎右旗| 太仓市| 外汇| 武强县| 长岭县| 郯城县| 凤山县| 彰化县| 枣庄市| 正安县| 佛冈县| 湘乡市| 沅陵县| 明溪县| 德州市| 榆树市| 芮城县| 遵化市| 深州市| 化德县| 宜丰县| 建宁县| 东乌珠穆沁旗| 宜川县| 遂昌县| 抚远县| 渭南市| 平顶山市|