Улучшение парсинга head-запроса
This commit is contained in:
@@ -134,6 +134,7 @@ class BUCServer {
|
||||
id,
|
||||
queryTime: now,
|
||||
checkTime: 0, // 0 - never checked
|
||||
etag: '',
|
||||
modTime: '',
|
||||
size: 0,
|
||||
checkSum: '', //sha256
|
||||
@@ -253,9 +254,13 @@ class BUCServer {
|
||||
let hash = '';
|
||||
|
||||
const headers = await this.down.head(row.id);
|
||||
|
||||
const etag = headers['etag'] || '';
|
||||
const modTime = headers['last-modified'] || '';
|
||||
|
||||
if (!modTime || !row.modTime || (modTime !== row.modTime)) {
|
||||
if ((!etag || !row.etag || (etag !== row.etag))
|
||||
&& (!modTime || !row.modTime || (modTime !== row.modTime))
|
||||
) {
|
||||
const downdata = await this.down.load(row.id);
|
||||
|
||||
size = downdata.length;
|
||||
@@ -267,6 +272,7 @@ class BUCServer {
|
||||
table: 'buc',
|
||||
mod: `(r) => {
|
||||
r.checkTime = ${db.esc(Date.now())};
|
||||
r.etag = ${(unchanged ? 'r.etag' : db.esc(etag))};
|
||||
r.modTime = ${(unchanged ? 'r.modTime' : db.esc(modTime))};
|
||||
r.size = ${(unchanged ? 'r.size' : db.esc(size))};
|
||||
r.checkSum = ${(unchanged ? 'r.checkSum' : db.esc(hash))};
|
||||
|
||||
Reference in New Issue
Block a user