你好,我好像以前遇到過你的問題。以下是我獨創(chuàng)的解決方案和方法。希望能幫到你。如有錯誤,請見諒!您使用的PDF查看軟件(如ADOBEREADER)的編號必須為000/000。只要在那個地方輸入你想要的數(shù)字,比如107,回車就可以了~,非常感謝你的耐心,如果有幫助請收下,祝你生活愉快!謝謝你
10多年的商城網(wǎng)站建設經驗,針對設計、前端、開發(fā)、售后、文案、推廣等六對一服務,響應快,48小時及時工作處理。全網(wǎng)整合營銷推廣的優(yōu)勢是能夠根據(jù)用戶設備顯示端的尺寸不同,自動調整商城建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設計,從而大程度地提升瀏覽體驗。成都創(chuàng)新互聯(lián)從事“商城網(wǎng)站設計”,“商城網(wǎng)站推廣”以來,每個客戶項目都認真落實執(zhí)行。
最近公司有新的需求,需要將文件上傳到阿里云OSS,目前項目中的文件主要是存儲到自己的服務器,這樣很容易受服務器帶寬、硬件的影響,加上服務器配置不高,應用服務很容易垮掉。之前也用過OSS,但是上傳文件都是比較小的10MB以內的文件,采用的是生成數(shù)據(jù)流的方式。這種情況已經無法滿足現(xiàn)在的應用場景,就又熟悉了一下SDK文檔,主要的實現(xiàn)方式有:
1、 上傳慢。先上傳到應用服務器,再上傳到OSS,網(wǎng)絡傳送多了一倍。如果數(shù)據(jù)直傳到OSS,不走應用服務器,速度將大大提升,而且OSS是采用BGP帶寬,能保證各地各運營商的速度。
2、 擴展性不好。如果后續(xù)用戶多了,應用服務器會成為瓶頸。
3、 費用高。由于OSS上傳流量是免費的。如果數(shù)據(jù)直傳到OSS,不走應用服務器,那么將能省下幾臺應用服務器。
采用JavaScript客戶端直接簽名(參見 JavaScript客戶端簽名直傳 )時,AccessKey ID和AcessKey Secret會暴露在前端頁面,因此存在嚴重的安全隱患。因此,OSS提供了服務端簽名后直傳的方案。
流程如下圖所示:
本示例中,Web端向服務端請求簽名,然后直接上傳,不會對服務端產生壓力,而且安全可靠。但本示例中的服務端無法實時了解用戶上傳了多少文件,上傳了什么文件。如果想實時了解用戶上傳了什么文件,可以采用 服務端簽名直傳并設置上傳回調 。
OSS 可以通過阿里云 STS (Security Token Service) 進行臨時授權訪問。阿里云 STS 是為云計算用戶提供臨時訪問令牌的Web服務。通過 STS,您可以為第三方應用或子用戶(即用戶身份由您自己管理的用戶)頒發(fā)一個自定義時效和權限的訪問憑證。
STS 安全令牌、角色管理和使用相關內容詳情,請參考 RAM 角色管理 。調用 STS 服務接口 AssumeRole 來獲取有效訪問憑證即可。
前端調用,請根據(jù)自身情況進行調用,下面是vue的示例
我們在項目中最終采用的是STS臨時授權方案。
STS的優(yōu)勢如下:
關于STS的介紹請查閱阿里云官方文檔:
在這邊不得不吐槽一下OSS的API,是真的很爛,基本找不到好的方法,都是基于百度才做出來的,當然,我使用的方法估計還有一些坑,只是能實現(xiàn)了我的功能。
STS臨時授權訪問OSS
vue直傳OSS
el-upload組件結合上傳阿里云OSS實現(xiàn)更優(yōu)交互
Web直傳OSS
OSS文件上傳(頁面直傳)
請問STS和簽名帶Policy的差別
STS臨時授權訪問OSS
vue+element+sts臨時授權上傳大文件到阿里云OSS時踩過的坑。
Vue上傳阿里云OSS(STS方式)
1.更換自己的網(wǎng)絡
正所謂一個巴掌拍不響,有時候不是別人的問題,也有可能是自己網(wǎng)絡的問題。有條件的話,如果使用的是電信寬帶上傳速度慢,那么可以換成聯(lián)通寬帶去上傳,很可能上傳速度就快了。
2.使用切換線路
通過切換線路,將線路切換到離服務器最近的地方,這樣可能在訪問速度和上傳速度上都會便的非常的快。
3.將數(shù)據(jù)打包后再上傳
上傳速度慢有可能是文件太大了,可以先將文件打包壓縮后上傳。上傳一個小的文件總比上傳一個大的文件速度要快吧。上傳好之后再解壓便可。
4.將文件轉發(fā)給空間商,讓他們幫忙上傳
如果打包后的文件上傳依舊很慢,那么就先將壓縮文件上傳到國內空間上,然后把壓縮文件的地址發(fā)給美國服務器商,讓他們到美國服務器上去下載解壓。