[發明專利]基于Redis分布式鎖開發的AWS S3 URL上傳方法有效
| 申請號: | 202010868501.7 | 申請日: | 2020-08-26 |
| 公開(公告)號: | CN112039969B | 公開(公告)日: | 2022-04-08 |
| 發明(設計)人: | 羅宇豪;陳初興;徐士強;高傳集 | 申請(專利權)人: | 浪潮云信息技術股份公司 |
| 主分類號: | H04L67/06 | 分類號: | H04L67/06;H04L67/1097;H04L61/10;H04L67/56;H04L61/4511;G06F16/172 |
| 代理公司: | 濟南信達專利事務所有限公司 37100 | 代理人: | 孫園園 |
| 地址: | 250100 山東省濟南市高*** | 國省代碼: | 山東;37 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 redis 分布式 開發 aws s3 url 上傳 方法 | ||
1.一種基于Redis分布式鎖開發的URL上傳方法,其特征在于,該方法具體如下:
部署K8S集群,多節點發布組件應用,使用nginx代理實現外網訪問;
將數據信息存入數據庫保存和文件的下載上傳實現異步處理;
使用線程池創建多線程進行并發處理,并且對不同文件類型或者不同協議類型的文件進行不同的處理;
其中,數據信息是通過URL下載鏈接將文件上傳到指定對象存儲服務中,具體如下:
通過網絡通信獲取廠商返回的數據信息,存入數據庫保存;
解析數據信息,并進行下載操作;其中,下載操作中下載請求的建立具體如下:
(1)、請求網宿下載鏈接,下一步執行步驟(2);
(2)、判斷是否成功解析域名:
①、若是,則執行步驟(3);
②、若否,則跳轉至步驟(5);
(3)、TCP鏈接是否被重置:
①、若是,則跳轉至步驟(5);
②、若否,則執行步驟(4);
(4)、建立短鏈接,進行數據傳輸;
(5)、是否已達到重試上線:
①、若是,則執行步驟(6);
②、若否,則跳轉至步驟(1);
(6)、降低優先級,任務結束;
解析數據信息,并將下載信息與文件元信息一同上傳到對象存儲。
2.根據權利要求1所述的基于Redis分布式鎖開發的URL上傳方法,其特征在于,數據庫的單條文件數據包括用戶數據、文件來源數據、文件元數據及對象存儲配置數據;
其中,用戶數據包括用戶id和用戶狀態,用戶數據用于判斷對應數據的任務是否需要執行;
文件來源數據是指廠商提供的文件下載地址;
文件元數據包括文件格式、文件協議、文件大小、錄制、開始時間、結束時間、用戶下載地址、播放地址、任務狀態的需要文字展示給用戶或播放、查看時所需信息;
對象存儲配置數據包括對象存儲服務用戶鑒權密鑰、上傳位置、服務器節點及服務區域的數據。
3.根據權利要求1或2所述的基于Redis分布式鎖開發的URL上傳方法,其特征在于,數據傳輸由定時任務觸發,不同節點使用相同的Redis分布式鎖,在Redis分布式鎖上加上自旋鎖,當節點未搶到Redis分布式鎖,在Redis分布式鎖過期時間內自旋等待;當其中一個節點進行數據庫修改,釋放Redis分布式鎖后,自旋節點立即進行搶鎖獲得鎖;
使用Redis分布式鎖實現K8S分布式鎖,并給Redis分布式鎖添加過期時間;
其中,K8S集群使用多節點部署,K8S集群節點使用滾動式部署,在網絡波動場景下,下載或者上傳任務失敗時,當前一個節點失敗鎖釋放,下一個節點獲取鎖,重新執行任務;emptydir用以設置緩存文件夾的掛在路徑, emptydir每一個節點都有自己的單獨空間,前一個節點任務失敗,下一個節點進行下載時不能重寫另一個節點的文件,若當前節點完成任務,上一個節點的失敗下載文件使用hostpath進行掛載,hostpath不同節點使用同一空間,避免產生孤島文件。
4.根據權利要求1所述的基于Redis分布式鎖開發的URL上傳方法,其特征在于,將下載信息與文件元信息一同上傳到對象存儲使用AWS S3上傳,具體如下:
根據文件的類型,添加header:Content-Type;其中,對于特殊的HLS格式視頻文件,將索引文件和ts文件Content-Type設置為stream;
考慮到直播涉及的視頻文件數據大小,上傳時S3使用分片上傳,并且在每次上傳前設置分片的生命周期;
在分片上傳失敗時,每過一天清理之前的碎片垃圾;
文件權限設置為PublicRead,保證視頻和/或圖片文件獲取連接的用戶觀看,無法修改;
使用TransferManager建立上傳連接,在分片上傳完成后刪除服務temp中緩存文件。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于浪潮云信息技術股份公司,未經浪潮云信息技術股份公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010868501.7/1.html,轉載請聲明來源鉆瓜專利網。





