@iflyrpa/share 0.0.14-beta.9 → 0.0.15-beta.0
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/index.js +69 -13
- package/dist/index.mjs +69 -13
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -165,17 +165,13 @@ function ensureFile(filePath) {
|
|
|
165
165
|
async function downloadImage(url, savePath) {
|
|
166
166
|
await ensureFile(savePath);
|
|
167
167
|
return new Promise((resolve, reject)=>{
|
|
168
|
-
|
|
168
|
+
const handleResponse = (response)=>{
|
|
169
169
|
if (301 === response.statusCode || 302 === response.statusCode) {
|
|
170
170
|
const redirectUrl = response.headers.location;
|
|
171
|
-
if (redirectUrl) external_node_https_default().get(redirectUrl, (
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
fileStream.close();
|
|
176
|
-
console.log(`${response.statusCode} 下载完成,文件已保存至:`, savePath);
|
|
177
|
-
resolve(savePath);
|
|
178
|
-
});
|
|
171
|
+
if (redirectUrl) external_node_https_default().get(redirectUrl, handleResponse).on("error", handleError);
|
|
172
|
+
else reject({
|
|
173
|
+
code: 200,
|
|
174
|
+
message: "图片下载失败: 跳转地址无效"
|
|
179
175
|
});
|
|
180
176
|
} else if (200 === response.statusCode) {
|
|
181
177
|
const fileStream = external_node_fs_default().createWriteStream(savePath);
|
|
@@ -185,15 +181,75 @@ async function downloadImage(url, savePath) {
|
|
|
185
181
|
console.log("下载完成,文件已保存至:", savePath);
|
|
186
182
|
resolve(savePath);
|
|
187
183
|
});
|
|
184
|
+
fileStream.on("error", (err)=>{
|
|
185
|
+
reject({
|
|
186
|
+
code: 500,
|
|
187
|
+
message: `图片Buffer写入失败: ${err.message}`
|
|
188
|
+
});
|
|
189
|
+
});
|
|
188
190
|
} else {
|
|
189
191
|
console.log("图片下载失败:", response.statusCode);
|
|
190
192
|
response.resume();
|
|
191
|
-
reject(
|
|
193
|
+
reject({
|
|
194
|
+
code: 500,
|
|
195
|
+
message: `图片下载失败,状态码: ${response.statusCode}`
|
|
196
|
+
});
|
|
192
197
|
}
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
|
|
198
|
+
};
|
|
199
|
+
const handleError = (error)=>{
|
|
200
|
+
let customMessage = {
|
|
201
|
+
code: 500,
|
|
202
|
+
message: "请求图片时发生未知错误,请检查网络连接或稍后重试!"
|
|
203
|
+
};
|
|
204
|
+
switch(error.code){
|
|
205
|
+
case "ECONNRESET":
|
|
206
|
+
customMessage = {
|
|
207
|
+
code: 500,
|
|
208
|
+
message: "连接被重置,请检查网络连接或稍后重试!"
|
|
209
|
+
};
|
|
210
|
+
break;
|
|
211
|
+
case "ENOTFOUND":
|
|
212
|
+
customMessage = {
|
|
213
|
+
code: 500,
|
|
214
|
+
message: "域名解析失败,请检查网络连接或稍后重试!"
|
|
215
|
+
};
|
|
216
|
+
break;
|
|
217
|
+
case "ETIMEDOUT":
|
|
218
|
+
customMessage = {
|
|
219
|
+
code: 500,
|
|
220
|
+
message: "超时,请检查网络连接或稍后重试!"
|
|
221
|
+
};
|
|
222
|
+
break;
|
|
223
|
+
case "ECONNREFUSED":
|
|
224
|
+
customMessage = {
|
|
225
|
+
code: 500,
|
|
226
|
+
message: "目标服务器拒绝连接,请检查网络连接或稍后重试!"
|
|
227
|
+
};
|
|
228
|
+
break;
|
|
229
|
+
case "EAI_AGAIN":
|
|
230
|
+
customMessage = {
|
|
231
|
+
code: 500,
|
|
232
|
+
message: " DNS 查询超时,请检查网络连接或稍后重试!"
|
|
233
|
+
};
|
|
234
|
+
break;
|
|
235
|
+
default:
|
|
236
|
+
break;
|
|
237
|
+
}
|
|
238
|
+
customMessage.message = "请求图片时" + customMessage.message;
|
|
239
|
+
customMessage.extra = {
|
|
240
|
+
url
|
|
241
|
+
};
|
|
242
|
+
reject(customMessage);
|
|
243
|
+
};
|
|
244
|
+
const req = external_node_https_default().get(url, handleResponse);
|
|
245
|
+
req.setTimeout(10000, ()=>{
|
|
246
|
+
req.destroy();
|
|
247
|
+
reject({
|
|
248
|
+
code: 200,
|
|
249
|
+
message: "图片下载超时,请检查网络连接或稍后重试!"
|
|
250
|
+
});
|
|
196
251
|
});
|
|
252
|
+
req.on("error", handleError);
|
|
197
253
|
});
|
|
198
254
|
}
|
|
199
255
|
function getFilenameFromUrl(imageUrl) {
|
package/dist/index.mjs
CHANGED
|
@@ -108,17 +108,13 @@ function ensureFile(filePath) {
|
|
|
108
108
|
async function downloadImage(url, savePath) {
|
|
109
109
|
await ensureFile(savePath);
|
|
110
110
|
return new Promise((resolve, reject)=>{
|
|
111
|
-
|
|
111
|
+
const handleResponse = (response)=>{
|
|
112
112
|
if (301 === response.statusCode || 302 === response.statusCode) {
|
|
113
113
|
const redirectUrl = response.headers.location;
|
|
114
|
-
if (redirectUrl) __WEBPACK_EXTERNAL_MODULE_node_https_626f33a7__["default"].get(redirectUrl, (
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
fileStream.close();
|
|
119
|
-
console.log(`${response.statusCode} 下载完成,文件已保存至:`, savePath);
|
|
120
|
-
resolve(savePath);
|
|
121
|
-
});
|
|
114
|
+
if (redirectUrl) __WEBPACK_EXTERNAL_MODULE_node_https_626f33a7__["default"].get(redirectUrl, handleResponse).on("error", handleError);
|
|
115
|
+
else reject({
|
|
116
|
+
code: 200,
|
|
117
|
+
message: "图片下载失败: 跳转地址无效"
|
|
122
118
|
});
|
|
123
119
|
} else if (200 === response.statusCode) {
|
|
124
120
|
const fileStream = __WEBPACK_EXTERNAL_MODULE_node_fs_5ea92f0c__["default"].createWriteStream(savePath);
|
|
@@ -128,15 +124,75 @@ async function downloadImage(url, savePath) {
|
|
|
128
124
|
console.log("下载完成,文件已保存至:", savePath);
|
|
129
125
|
resolve(savePath);
|
|
130
126
|
});
|
|
127
|
+
fileStream.on("error", (err)=>{
|
|
128
|
+
reject({
|
|
129
|
+
code: 500,
|
|
130
|
+
message: `图片Buffer写入失败: ${err.message}`
|
|
131
|
+
});
|
|
132
|
+
});
|
|
131
133
|
} else {
|
|
132
134
|
console.log("图片下载失败:", response.statusCode);
|
|
133
135
|
response.resume();
|
|
134
|
-
reject(
|
|
136
|
+
reject({
|
|
137
|
+
code: 500,
|
|
138
|
+
message: `图片下载失败,状态码: ${response.statusCode}`
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
};
|
|
142
|
+
const handleError = (error)=>{
|
|
143
|
+
let customMessage = {
|
|
144
|
+
code: 500,
|
|
145
|
+
message: "请求图片时发生未知错误,请检查网络连接或稍后重试!"
|
|
146
|
+
};
|
|
147
|
+
switch(error.code){
|
|
148
|
+
case "ECONNRESET":
|
|
149
|
+
customMessage = {
|
|
150
|
+
code: 500,
|
|
151
|
+
message: "连接被重置,请检查网络连接或稍后重试!"
|
|
152
|
+
};
|
|
153
|
+
break;
|
|
154
|
+
case "ENOTFOUND":
|
|
155
|
+
customMessage = {
|
|
156
|
+
code: 500,
|
|
157
|
+
message: "域名解析失败,请检查网络连接或稍后重试!"
|
|
158
|
+
};
|
|
159
|
+
break;
|
|
160
|
+
case "ETIMEDOUT":
|
|
161
|
+
customMessage = {
|
|
162
|
+
code: 500,
|
|
163
|
+
message: "超时,请检查网络连接或稍后重试!"
|
|
164
|
+
};
|
|
165
|
+
break;
|
|
166
|
+
case "ECONNREFUSED":
|
|
167
|
+
customMessage = {
|
|
168
|
+
code: 500,
|
|
169
|
+
message: "目标服务器拒绝连接,请检查网络连接或稍后重试!"
|
|
170
|
+
};
|
|
171
|
+
break;
|
|
172
|
+
case "EAI_AGAIN":
|
|
173
|
+
customMessage = {
|
|
174
|
+
code: 500,
|
|
175
|
+
message: " DNS 查询超时,请检查网络连接或稍后重试!"
|
|
176
|
+
};
|
|
177
|
+
break;
|
|
178
|
+
default:
|
|
179
|
+
break;
|
|
135
180
|
}
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
181
|
+
customMessage.message = "请求图片时" + customMessage.message;
|
|
182
|
+
customMessage.extra = {
|
|
183
|
+
url
|
|
184
|
+
};
|
|
185
|
+
reject(customMessage);
|
|
186
|
+
};
|
|
187
|
+
const req = __WEBPACK_EXTERNAL_MODULE_node_https_626f33a7__["default"].get(url, handleResponse);
|
|
188
|
+
req.setTimeout(10000, ()=>{
|
|
189
|
+
req.destroy();
|
|
190
|
+
reject({
|
|
191
|
+
code: 200,
|
|
192
|
+
message: "图片下载超时,请检查网络连接或稍后重试!"
|
|
193
|
+
});
|
|
139
194
|
});
|
|
195
|
+
req.on("error", handleError);
|
|
140
196
|
});
|
|
141
197
|
}
|
|
142
198
|
function getFilenameFromUrl(imageUrl) {
|