@soga/fetcher 0.2.35 → 0.2.36
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/ali/fetcher.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.getAliFetcher=exports.AliFetcher=void 0;const axios_1=__importDefault(require("axios")),typeorm_1=require("typeorm"),entities_1=require("@soga/entities"),processMap={};let instance=null;class AliFetcher{axios;domain="https://openapi.alipan.com";urlRepository;constructor(e){this.axios=axios_1.default.create({baseURL:this.domain}),this.axios.interceptors.response.use((e=>e.data),(e=>Promise.reject(e))),this.urlRepository=e.getRepository(entities_1.FetchUrl)}async getDownloadUrl({access_token:e,drive_id:t,file_id:i,ua:r}){const a=this.getKey({access_token:e,file_id:i,ua:r});try{for(;processMap[a];)await new Promise((e=>setTimeout(e,100)));processMap[a]=!0;const
|
|
1
|
+
"use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.getAliFetcher=exports.AliFetcher=void 0;const axios_1=__importDefault(require("axios")),typeorm_1=require("typeorm"),entities_1=require("@soga/entities"),processMap={};let instance=null;class AliFetcher{axios;domain="https://openapi.alipan.com";urlRepository;constructor(e){this.axios=axios_1.default.create({baseURL:this.domain}),this.axios.interceptors.response.use((e=>e.data),(e=>Promise.reject(e))),this.urlRepository=e.getRepository(entities_1.FetchUrl)}async getDownloadUrl({access_token:e,drive_id:t,file_id:i,ua:r}){const a=this.getKey({access_token:e,file_id:i,ua:r});try{for(;processMap[a];)await new Promise((e=>setTimeout(e,100)));processMap[a]=!0;const o=await this.urlRepository.findOne({where:{key:a,fail:(0,typeorm_1.LessThan)(2),expire:(0,typeorm_1.MoreThan)(Date.now())},order:{fail:"ASC"}});if(o)return o.fail>1?(await this.urlRepository.delete({key:a}),""):o.dlink;const{url:s,expiration:n}=await this.fetchDownloadInfo({access_token:e,drive_id:t,file_id:i,ua:r});if(s)return await this.urlRepository.save({dlink:s,key:a,speed:100,expire:new Date(n).getTime()}),s;throw new Error("ali fetch download url failed")}finally{delete processMap[a]}}async getArrayBuffer(e){return await this.multipleGetArrayBuffer({...e,times:0})}async multipleGetArrayBuffer({access_token:e,drive_id:t,file_id:i,start:r,end:a,abort_controller:o,times:s=0,ua:n}){const l=await this.getDownloadUrl({access_token:e,drive_id:t,file_id:i,ua:n});if(!l)throw new Error("获取下载链接失败");try{const e=a-r+1,t=Math.max(1e3*Math.ceil(e/1024/50),3e3);return(await axios_1.default.get(l,{headers:{Range:`bytes=${r}-${a}`,"User-Agent":n,Accept:"application/octet-stream"},responseType:"arraybuffer",timeout:t,signal:o?.signal})).data}catch(o){if(console.log("-------------------------------"),console.log(o.name,o.message),"AbortError"===o.name)return;const c=this.getKey({access_token:e,file_id:i,ua:n});if(await this.urlRepository.increment({key:c,dlink:l},"fail",1),await new Promise((e=>setTimeout(e,1e3))),(s||0)<3)return await this.multipleGetArrayBuffer({access_token:e,drive_id:t,file_id:i,start:r,end:a,times:(s||0)+1,ua:n});throw o}}async fetchDownloadInfo({access_token:e,drive_id:t,file_id:i,ua:r}){const a={Authorization:`Bearer ${e}`,"User-Agent":r},{url:o,expiration:s}=await this.axios.post("/adrive/v1.0/openFile/getDownloadUrl",{drive_id:t,file_id:i},{headers:a});return{url:o,expiration:s}}getKey({access_token:e,file_id:t,ua:i}){const r=i?encodeURIComponent(i):"ua";return`ali-${encodeURIComponent(e)}-${r}-${t}`}}exports.AliFetcher=AliFetcher;const getAliFetcher=e=>(instance||(instance=new AliFetcher(e)),instance);exports.getAliFetcher=getAliFetcher;
|
package/dist/ali/get-buffer.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getAliDownloadBuffer=exports.getAliPreviewBuffer=void 0;const common_1=require("../common/common"),fetch_buffer_1=require("./fetch-buffer"),low_store_1=require("../common/low-store"),getAliBuffer=async({dataSource:e,record_id:t,start:r,end:o,total:i,part_md5:f,access_token:a,host_id:l,host_vip_type:_,drive_id:c,file_id:d,cache_folder:s,abort_controller:n},u)=>{const w=(0,common_1.getKey)({part_md5:f,start:r,end:o});let p=null;if(s){p=await(0,low_store_1.getLowStore)(s,u);const e=await p.readBuffer(w);if(e)return e}const B=await(0,fetch_buffer_1.fetchAliBuffer)({dataSource:e,record_id:t,start:r,end:o,total:i,access_token:a,host_id:l,host_vip_type:_,drive_id:c,file_id:d,part_md5:f,abort_controller:n});return p&&await p.writeBuffer(w,B),B},getAliPreviewBuffer=async e=>await getAliBuffer(e,"preview");exports.getAliPreviewBuffer=getAliPreviewBuffer;const getAliDownloadBuffer=async e=>await getAliBuffer(e,"download");exports.getAliDownloadBuffer=getAliDownloadBuffer;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getAliDownloadBuffer=exports.getAliPreviewBuffer=void 0;const common_1=require("../common/common"),fetch_buffer_1=require("./fetch-buffer"),low_store_1=require("../common/low-store"),getAliBuffer=async({dataSource:e,record_id:t,start:r,end:o,total:i,part_md5:f,access_token:a,host_id:l,host_vip_type:_,drive_id:c,file_id:d,cache_folder:s,abort_controller:n},u)=>{const w=(0,common_1.getKey)({part_md5:f,start:r,end:o});let p=null;if(s){p=await(0,low_store_1.getLowStore)(s,u);const e=await p.readBuffer(w);if(e)return e}const B=await(0,fetch_buffer_1.fetchAliBuffer)({dataSource:e,record_id:t,start:r,end:o,total:i,access_token:a,host_id:l,host_vip_type:_,drive_id:c,file_id:d,part_md5:f,abort_controller:n});return B&&p&&await p.writeBuffer(w,B),B},getAliPreviewBuffer=async e=>await getAliBuffer(e,"preview");exports.getAliPreviewBuffer=getAliPreviewBuffer;const getAliDownloadBuffer=async e=>await getAliBuffer(e,"download");exports.getAliDownloadBuffer=getAliDownloadBuffer;
|
package/dist/baidu/get-buffer.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getBaiduDownloadBuffer=exports.getBaiduPreviewBuffer=void 0;const common_1=require("../common/common"),fetch_buffer_1=require("./fetch-buffer"),low_store_1=require("../common/low-store"),getBaiduBuffer=async({dataSource:e,record_id:t,start:r,end:o,total:a,part_md5:f,access_token:i,host_id:u,host_vip_type:d,fs_id:s,cache_folder:c,abort_controller:_},n)=>{let B=null;const w=(0,common_1.getKey)({part_md5:f,start:r,end:o});if(c){B=await(0,low_store_1.getLowStore)(c,n);const e=await B.readBuffer(w);if(e)return e}const l=await(0,fetch_buffer_1.fetchBaiduBuffer)({dataSource:e,record_id:t,start:r,end:o,total:a,access_token:i,host_id:u,host_vip_type:d,fs_id:s,part_md5:f,abort_controller:_});return B&&await B.writeBuffer(w,l),l},getBaiduPreviewBuffer=async e=>await getBaiduBuffer(e,"preview");exports.getBaiduPreviewBuffer=getBaiduPreviewBuffer;const getBaiduDownloadBuffer=async e=>await getBaiduBuffer(e,"download");exports.getBaiduDownloadBuffer=getBaiduDownloadBuffer;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getBaiduDownloadBuffer=exports.getBaiduPreviewBuffer=void 0;const common_1=require("../common/common"),fetch_buffer_1=require("./fetch-buffer"),low_store_1=require("../common/low-store"),getBaiduBuffer=async({dataSource:e,record_id:t,start:r,end:o,total:a,part_md5:f,access_token:i,host_id:u,host_vip_type:d,fs_id:s,cache_folder:c,abort_controller:_},n)=>{let B=null;const w=(0,common_1.getKey)({part_md5:f,start:r,end:o});if(c){B=await(0,low_store_1.getLowStore)(c,n);const e=await B.readBuffer(w);if(e)return e}const l=await(0,fetch_buffer_1.fetchBaiduBuffer)({dataSource:e,record_id:t,start:r,end:o,total:a,access_token:i,host_id:u,host_vip_type:d,fs_id:s,part_md5:f,abort_controller:_});return l&&B&&await B.writeBuffer(w,l),l},getBaiduPreviewBuffer=async e=>await getBaiduBuffer(e,"preview");exports.getBaiduPreviewBuffer=getBaiduPreviewBuffer;const getBaiduDownloadBuffer=async e=>await getBaiduBuffer(e,"download");exports.getBaiduDownloadBuffer=getBaiduDownloadBuffer;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@soga/fetcher",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.36",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -53,5 +53,5 @@
|
|
|
53
53
|
"axios": "*",
|
|
54
54
|
"typeorm": "*"
|
|
55
55
|
},
|
|
56
|
-
"gitHead": "
|
|
56
|
+
"gitHead": "87d3b9a7aceee9bb2e2888cc0d2abd60d0046c42"
|
|
57
57
|
}
|