@@ -55,21 +55,23 @@ export class AggregatorStorageAdapter implements StorageAdapter, StorageAdapterE
55
55
let current : Blob | undefined = (
56
56
await this . dbAdapter . find < Blob > ( ctx , workspaceId , DOMAIN_BLOB , { _id : objectName as Ref < Blob > } , { limit : 1 } )
57
57
) . shift ( )
58
+ let updated = false
58
59
if ( current === undefined && providerId !== undefined ) {
59
60
current = await this . adapters . get ( providerId ) ?. stat ( ctx , workspaceId , objectName )
60
61
if ( current !== undefined ) {
61
62
current . provider = providerId
63
+ updated = true
62
64
}
63
65
}
64
66
65
67
const provider = this . adapters . get ( providerId ?? current ?. provider ?? this . defaultAdapter )
66
68
if ( provider === undefined ) {
67
69
throw new NoSuchKeyError ( 'No such provider found' )
68
70
}
69
- const stat = await provider . stat ( ctx , workspaceId , objectName )
71
+ const stat = updated ? current : await provider . stat ( ctx , workspaceId , objectName )
70
72
if ( stat !== undefined ) {
71
73
stat . provider = providerId ?? current ?. provider ?? this . defaultAdapter
72
- if ( current !== undefined ) {
74
+ if ( current !== undefined && ! updated ) {
73
75
await this . dbAdapter . clean ( ctx , workspaceId , DOMAIN_BLOB , [ current . _id ] )
74
76
}
75
77
await this . dbAdapter . upload < Blob > ( ctx , workspaceId , DOMAIN_BLOB , [ stat ] )
0 commit comments