初始化环境文件
This commit is contained in:
39
node_modules/@aws-sdk/middleware-sdk-s3/dist-es/s3-express/classes/S3ExpressIdentityCache.js
generated
vendored
Normal file
39
node_modules/@aws-sdk/middleware-sdk-s3/dist-es/s3-express/classes/S3ExpressIdentityCache.js
generated
vendored
Normal file
@@ -0,0 +1,39 @@
|
||||
export class S3ExpressIdentityCache {
|
||||
data;
|
||||
lastPurgeTime = Date.now();
|
||||
static EXPIRED_CREDENTIAL_PURGE_INTERVAL_MS = 30_000;
|
||||
constructor(data = {}) {
|
||||
this.data = data;
|
||||
}
|
||||
get(key) {
|
||||
const entry = this.data[key];
|
||||
if (!entry) {
|
||||
return;
|
||||
}
|
||||
return entry;
|
||||
}
|
||||
set(key, entry) {
|
||||
this.data[key] = entry;
|
||||
return entry;
|
||||
}
|
||||
delete(key) {
|
||||
delete this.data[key];
|
||||
}
|
||||
async purgeExpired() {
|
||||
const now = Date.now();
|
||||
if (this.lastPurgeTime + S3ExpressIdentityCache.EXPIRED_CREDENTIAL_PURGE_INTERVAL_MS > now) {
|
||||
return;
|
||||
}
|
||||
for (const key in this.data) {
|
||||
const entry = this.data[key];
|
||||
if (!entry.isRefreshing) {
|
||||
const credential = await entry.identity;
|
||||
if (credential.expiration) {
|
||||
if (credential.expiration.getTime() < now) {
|
||||
delete this.data[key];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user