@protontech/drive-sdk 0.14.1 → 0.14.2
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/internal/batchLoading.d.ts +2 -0
- package/dist/internal/batchLoading.js +18 -5
- package/dist/internal/batchLoading.js.map +1 -1
- package/dist/internal/batchLoading.test.js +92 -0
- package/dist/internal/batchLoading.test.js.map +1 -1
- package/dist/internal/nodes/nodesAccess.js +1 -1
- package/dist/internal/nodes/nodesAccess.js.map +1 -1
- package/dist/internal/nodes/nodesAccess.test.js +3 -2
- package/dist/internal/nodes/nodesAccess.test.js.map +1 -1
- package/dist/internal/photos/index.js +3 -1
- package/dist/internal/photos/index.js.map +1 -1
- package/dist/internal/photos/upload.d.ts +1 -1
- package/dist/internal/photos/upload.js +2 -2
- package/dist/internal/photos/upload.js.map +1 -1
- package/dist/internal/sharing/events.d.ts +4 -2
- package/dist/internal/sharing/events.js +40 -9
- package/dist/internal/sharing/events.js.map +1 -1
- package/dist/internal/sharing/events.test.js +30 -2
- package/dist/internal/sharing/events.test.js.map +1 -1
- package/dist/internal/sharing/index.js +1 -1
- package/dist/internal/sharing/index.js.map +1 -1
- package/dist/internal/upload/fileUploader.d.ts +19 -3
- package/dist/internal/upload/fileUploader.js +31 -5
- package/dist/internal/upload/fileUploader.js.map +1 -1
- package/dist/internal/upload/fileUploader.test.js +1 -1
- package/dist/internal/upload/fileUploader.test.js.map +1 -1
- package/dist/internal/upload/index.js +4 -11
- package/dist/internal/upload/index.js.map +1 -1
- package/dist/internal/upload/index.test.js +104 -45
- package/dist/internal/upload/index.test.js.map +1 -1
- package/dist/internal/upload/smallFileUploader.d.ts +14 -14
- package/dist/internal/upload/smallFileUploader.js +38 -20
- package/dist/internal/upload/smallFileUploader.js.map +1 -1
- package/dist/internal/upload/smallFileUploader.test.js +35 -36
- package/dist/internal/upload/smallFileUploader.test.js.map +1 -1
- package/package.json +1 -1
- package/src/internal/batchLoading.test.ts +104 -0
- package/src/internal/batchLoading.ts +21 -5
- package/src/internal/nodes/nodesAccess.test.ts +4 -3
- package/src/internal/nodes/nodesAccess.ts +1 -1
- package/src/internal/photos/index.ts +2 -0
- package/src/internal/photos/upload.ts +13 -1
- package/src/internal/sharing/events.test.ts +35 -2
- package/src/internal/sharing/events.ts +47 -10
- package/src/internal/sharing/index.ts +1 -0
- package/src/internal/upload/fileUploader.test.ts +1 -0
- package/src/internal/upload/fileUploader.ts +60 -2
- package/src/internal/upload/index.test.ts +121 -63
- package/src/internal/upload/index.ts +4 -30
- package/src/internal/upload/smallFileUploader.test.ts +33 -40
- package/src/internal/upload/smallFileUploader.ts +47 -36
|
@@ -6,10 +6,12 @@ class SharingEventHandler {
|
|
|
6
6
|
logger;
|
|
7
7
|
cache;
|
|
8
8
|
shares;
|
|
9
|
-
|
|
9
|
+
nodesService;
|
|
10
|
+
constructor(logger, cache, shares, nodesService) {
|
|
10
11
|
this.logger = logger;
|
|
11
12
|
this.cache = cache;
|
|
12
13
|
this.shares = shares;
|
|
14
|
+
this.nodesService = nodesService;
|
|
13
15
|
}
|
|
14
16
|
/**
|
|
15
17
|
* Update cache and notify listeners accordingly for any updates
|
|
@@ -27,21 +29,50 @@ class SharingEventHandler {
|
|
|
27
29
|
*/
|
|
28
30
|
async handleDriveEvent(event) {
|
|
29
31
|
try {
|
|
30
|
-
|
|
31
|
-
await this.cache.setSharedWithMeNodeUids(undefined);
|
|
32
|
-
return;
|
|
33
|
-
}
|
|
32
|
+
await this.handleSharedWithMeNodeUidsLoaded(event);
|
|
34
33
|
await this.handleSharedByMeNodeUidsLoaded(event);
|
|
35
34
|
}
|
|
36
35
|
catch (error) {
|
|
37
|
-
this.logger.error(`Skipping
|
|
36
|
+
this.logger.error(`Skipping sharing cache update`, error);
|
|
38
37
|
}
|
|
39
38
|
}
|
|
40
|
-
async
|
|
41
|
-
if (
|
|
42
|
-
await this.cache.setSharedWithMeNodeUids(undefined);
|
|
39
|
+
async handleSharedWithMeNodeUidsLoaded(event) {
|
|
40
|
+
if (![events_1.DriveEventType.SharedWithMeUpdated, events_1.DriveEventType.TreeRefresh, events_1.DriveEventType.TreeRemove].includes(event.type)) {
|
|
43
41
|
return;
|
|
44
42
|
}
|
|
43
|
+
// When user changes the membership (permissions) for a user, the
|
|
44
|
+
// backend emits both NodeUpdated and SharedWithMeUpdated events.
|
|
45
|
+
// Ideally, the SDK doesn't have to refresh all the shared nodes,
|
|
46
|
+
// only those that were changed via the NodeUpdated event. However,
|
|
47
|
+
// the client very likely will not be subscribed to all shared volumes.
|
|
48
|
+
// When the client only lists the list itself and not the trees, it
|
|
49
|
+
// is still required to refresh all the nodes to be sure to have the
|
|
50
|
+
// latest state.
|
|
51
|
+
// The sharing module doesn't have access to the nodes cache, thus
|
|
52
|
+
// it notifies the nodes via the service. If this fails, we need to
|
|
53
|
+
// log it, but it should not block the event handling. The node might
|
|
54
|
+
// be wrong at the "shared with me" listing, but it will be eventually
|
|
55
|
+
// updated once the user opens the volume tree and client processes
|
|
56
|
+
// the events for that volume.
|
|
57
|
+
// Ideally, in the future, the Drive API provides a custom event with
|
|
58
|
+
// indication of what node was added or removed or updated, instead
|
|
59
|
+
// of emitting destructive SharedWithMeUpdated event.
|
|
60
|
+
const hasSharedWithMeLoaded = await this.cache.hasSharedWithMeNodeUidsLoaded();
|
|
61
|
+
if (event.type === events_1.DriveEventType.SharedWithMeUpdated && hasSharedWithMeLoaded) {
|
|
62
|
+
try {
|
|
63
|
+
const sharedWithMeNodeUids = await this.cache.getSharedWithMeNodeUids();
|
|
64
|
+
this.logger.debug(`Shared with me updated, notifying ${sharedWithMeNodeUids.length} nodes`);
|
|
65
|
+
for (const nodeUid of sharedWithMeNodeUids) {
|
|
66
|
+
await this.nodesService.notifyNodeChanged(nodeUid);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
catch (error) {
|
|
70
|
+
this.logger.error(`Skipping shared with me node cache update`, error);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
await this.cache.setSharedWithMeNodeUids(undefined);
|
|
74
|
+
}
|
|
75
|
+
async handleSharedByMeNodeUidsLoaded(event) {
|
|
45
76
|
if (![events_1.DriveEventType.NodeCreated, events_1.DriveEventType.NodeUpdated, events_1.DriveEventType.NodeDeleted].includes(event.type)) {
|
|
46
77
|
return;
|
|
47
78
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/internal/sharing/events.ts"],"names":[],"mappings":";;;AACA,sCAAuD;AAIvD,MAAa,mBAAmB;IAEhB;IACA;IACA;
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/internal/sharing/events.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,7 @@ describe('handleSharedByMeNodes', () => {
|
|
|
8
8
|
let cache;
|
|
9
9
|
let sharingEventHandler;
|
|
10
10
|
let sharesManager;
|
|
11
|
+
let nodesService;
|
|
11
12
|
beforeEach(() => {
|
|
12
13
|
jest.clearAllMocks();
|
|
13
14
|
// @ts-expect-error No need to implement all methods for mocking
|
|
@@ -21,7 +22,11 @@ describe('handleSharedByMeNodes', () => {
|
|
|
21
22
|
sharesManager = {
|
|
22
23
|
isOwnVolume: jest.fn(async (volumeId) => volumeId === 'MyVolume1'),
|
|
23
24
|
};
|
|
24
|
-
|
|
25
|
+
// @ts-expect-error No need to implement all methods for mocking
|
|
26
|
+
nodesService = {
|
|
27
|
+
notifyNodeChanged: jest.fn(),
|
|
28
|
+
};
|
|
29
|
+
sharingEventHandler = new events_2.SharingEventHandler((0, logger_1.getMockLogger)(), cache, sharesManager, nodesService);
|
|
25
30
|
});
|
|
26
31
|
it('should add if new own shared node is created', async () => {
|
|
27
32
|
const event = {
|
|
@@ -125,10 +130,12 @@ describe('handleSharedWithMeNodes', () => {
|
|
|
125
130
|
let cache;
|
|
126
131
|
let sharingAccess;
|
|
127
132
|
let sharesManager;
|
|
133
|
+
let nodesService;
|
|
128
134
|
beforeEach(() => {
|
|
129
135
|
jest.clearAllMocks();
|
|
130
136
|
// @ts-expect-error No need to implement all methods for mocking
|
|
131
137
|
cache = {
|
|
138
|
+
hasSharedWithMeNodeUidsLoaded: jest.fn().mockResolvedValue(false),
|
|
132
139
|
getSharedWithMeNodeUids: jest.fn(),
|
|
133
140
|
setSharedWithMeNodeUids: jest.fn(),
|
|
134
141
|
};
|
|
@@ -139,6 +146,10 @@ describe('handleSharedWithMeNodes', () => {
|
|
|
139
146
|
sharesManager = {
|
|
140
147
|
isOwnVolume: jest.fn(async (volumeId) => volumeId === 'MyVolume1'),
|
|
141
148
|
};
|
|
149
|
+
// @ts-expect-error No need to implement all methods for mocking
|
|
150
|
+
nodesService = {
|
|
151
|
+
notifyNodeChanged: jest.fn(),
|
|
152
|
+
};
|
|
142
153
|
});
|
|
143
154
|
it('should update cache', async () => {
|
|
144
155
|
const event = {
|
|
@@ -146,11 +157,28 @@ describe('handleSharedWithMeNodes', () => {
|
|
|
146
157
|
eventId: 'event1',
|
|
147
158
|
treeEventScopeId: 'core',
|
|
148
159
|
};
|
|
149
|
-
const sharingEventHandler = new events_2.SharingEventHandler((0, logger_1.getMockLogger)(), cache, sharesManager);
|
|
160
|
+
const sharingEventHandler = new events_2.SharingEventHandler((0, logger_1.getMockLogger)(), cache, sharesManager, nodesService);
|
|
150
161
|
await sharingEventHandler.handleDriveEvent(event);
|
|
151
162
|
expect(cache.setSharedWithMeNodeUids).toHaveBeenCalledWith(undefined);
|
|
152
163
|
expect(cache.getSharedWithMeNodeUids).not.toHaveBeenCalled();
|
|
153
164
|
expect(sharingAccess.iterateSharedNodesWithMe).not.toHaveBeenCalled();
|
|
165
|
+
expect(nodesService.notifyNodeChanged).not.toHaveBeenCalled();
|
|
166
|
+
});
|
|
167
|
+
it('should notify nodes changes', async () => {
|
|
168
|
+
cache.hasSharedWithMeNodeUidsLoaded = jest.fn().mockResolvedValue(true);
|
|
169
|
+
cache.getSharedWithMeNodeUids = jest.fn().mockResolvedValue(['nodeUid1', 'nodeUid2']);
|
|
170
|
+
const event = {
|
|
171
|
+
type: events_1.DriveEventType.SharedWithMeUpdated,
|
|
172
|
+
eventId: 'event1',
|
|
173
|
+
treeEventScopeId: 'core',
|
|
174
|
+
};
|
|
175
|
+
const sharingEventHandler = new events_2.SharingEventHandler((0, logger_1.getMockLogger)(), cache, sharesManager, nodesService);
|
|
176
|
+
await sharingEventHandler.handleDriveEvent(event);
|
|
177
|
+
expect(cache.setSharedWithMeNodeUids).toHaveBeenCalledWith(undefined);
|
|
178
|
+
expect(cache.getSharedWithMeNodeUids).toHaveBeenCalled();
|
|
179
|
+
expect(nodesService.notifyNodeChanged).toHaveBeenCalledTimes(2);
|
|
180
|
+
expect(nodesService.notifyNodeChanged).toHaveBeenCalledWith('nodeUid1');
|
|
181
|
+
expect(nodesService.notifyNodeChanged).toHaveBeenCalledWith('nodeUid2');
|
|
154
182
|
});
|
|
155
183
|
});
|
|
156
184
|
//# sourceMappingURL=events.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.test.js","sourceRoot":"","sources":["../../../src/internal/sharing/events.test.ts"],"names":[],"mappings":";;AAAA,+CAAmD;AACnD,sCAAuD;AAGvD,qCAA+C;
|
|
1
|
+
{"version":3,"file":"events.test.js","sourceRoot":"","sources":["../../../src/internal/sharing/events.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,7 +24,7 @@ function initSharingModule(telemetry, apiService, driveEntitiesCache, account, c
|
|
|
24
24
|
const cryptoService = new cryptoService_1.SharingCryptoService(telemetry, crypto, account, sharesService);
|
|
25
25
|
const sharingAccess = new sharingAccess_1.SharingAccess(api, cache, cryptoService, sharesService, nodesService);
|
|
26
26
|
const sharingManagement = new sharingManagement_1.SharingManagement(telemetry.getLogger('sharing'), api, cache, cryptoService, account, sharesService, nodesService);
|
|
27
|
-
const sharingEventHandler = new events_1.SharingEventHandler(telemetry.getLogger('sharing-event-handler'), cache, sharesService);
|
|
27
|
+
const sharingEventHandler = new events_1.SharingEventHandler(telemetry.getLogger('sharing-event-handler'), cache, sharesService, nodesService);
|
|
28
28
|
return {
|
|
29
29
|
access: sharingAccess,
|
|
30
30
|
eventHandler: sharingEventHandler,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/internal/sharing/index.ts"],"names":[],"mappings":";;AAuBA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/internal/sharing/index.ts"],"names":[],"mappings":";;AAuBA,8CAmCC;AAvDD,sCAA4C;AAC5C,6CAAiD;AACjD,mCAAuC;AACvC,mDAAuD;AACvD,mDAAgD;AAChD,2DAAwD;AAExD,qCAA+C;AAE/C,4CAA4C;AAC5C,mEAAmE;AACnE,MAAM,0BAA0B,GAAG,CAAC,wBAAe,CAAC,MAAM,EAAE,wBAAe,CAAC,IAAI,EAAE,wBAAe,CAAC,YAAY,CAAC,CAAC;AAEhH;;;;;;GAMG;AACH,SAAgB,iBAAiB,CAC7B,SAA+B,EAC/B,UAA2B,EAC3B,kBAA4C,EAC5C,OAA2B,EAC3B,MAAmB,EACnB,aAA4B,EAC5B,YAA0B,EAC1B,mBAAsC,0BAA0B;IAEhE,MAAM,GAAG,GAAG,IAAI,8BAAiB,CAAC,SAAS,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,UAAU,EAAE,gBAAgB,CAAC,CAAC;IACpG,MAAM,KAAK,GAAG,IAAI,oBAAY,CAAC,kBAAkB,CAAC,CAAC;IACnD,MAAM,aAAa,GAAG,IAAI,oCAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;IAC1F,MAAM,aAAa,GAAG,IAAI,6BAAa,CAAC,GAAG,EAAE,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,CAAC,CAAC;IAChG,MAAM,iBAAiB,GAAG,IAAI,qCAAiB,CAC3C,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,EAC9B,GAAG,EACH,KAAK,EACL,aAAa,EACb,OAAO,EACP,aAAa,EACb,YAAY,CACf,CAAC;IACF,MAAM,mBAAmB,GAAG,IAAI,4BAAmB,CAC/C,SAAS,CAAC,SAAS,CAAC,uBAAuB,CAAC,EAC5C,KAAK,EACL,aAAa,EACb,YAAY,CACf,CAAC;IAEF,OAAO;QACH,MAAM,EAAE,aAAa;QACrB,YAAY,EAAE,mBAAmB;QACjC,UAAU,EAAE,iBAAiB;KAChC,CAAC;AACN,CAAC"}
|
|
@@ -21,10 +21,11 @@ export declare abstract class Uploader {
|
|
|
21
21
|
protected manager: UploadManager;
|
|
22
22
|
protected metadata: UploadMetadata;
|
|
23
23
|
protected onFinish: () => void;
|
|
24
|
+
protected shouldUseSmallFileUpload: (expectedSize: number) => Promise<boolean>;
|
|
24
25
|
protected signal?: AbortSignal | undefined;
|
|
25
26
|
protected controller: UploadController;
|
|
26
27
|
protected abortController: AbortController;
|
|
27
|
-
constructor(telemetry: UploadTelemetry, apiService: UploadAPIService, cryptoService: UploadCryptoService, manager: UploadManager, metadata: UploadMetadata, onFinish: () => void, signal?: AbortSignal | undefined);
|
|
28
|
+
constructor(telemetry: UploadTelemetry, apiService: UploadAPIService, cryptoService: UploadCryptoService, manager: UploadManager, metadata: UploadMetadata, onFinish: () => void, shouldUseSmallFileUpload: (expectedSize: number) => Promise<boolean>, signal?: AbortSignal | undefined);
|
|
28
29
|
uploadFromFile(fileObject: File, thumbnails: Thumbnail[], onProgress?: (uploadedBytes: number) => void): Promise<UploadController>;
|
|
29
30
|
uploadFromStream(stream: ReadableStream, thumbnails: Thumbnail[], onProgress?: (uploadedBytes: number) => void): Promise<UploadController>;
|
|
30
31
|
private assertNotStartedYet;
|
|
@@ -33,6 +34,11 @@ export declare abstract class Uploader {
|
|
|
33
34
|
nodeRevisionUid: string;
|
|
34
35
|
nodeUid: string;
|
|
35
36
|
}>;
|
|
37
|
+
private getExpectedEncryptedTotalSize;
|
|
38
|
+
protected abstract initSmallFileUploader(stream: ReadableStream, thumbnails: Thumbnail[], onProgress?: (uploadedBytes: number) => void): Promise<{
|
|
39
|
+
nodeRevisionUid: string;
|
|
40
|
+
nodeUid: string;
|
|
41
|
+
}>;
|
|
36
42
|
protected initStreamUploader(): Promise<StreamUploader>;
|
|
37
43
|
protected newStreamUploader(blockVerifier: BlockVerifier, revisionDraft: NodeRevisionDraft, onFinish: (failure: boolean) => Promise<void>): Promise<StreamUploader>;
|
|
38
44
|
protected abstract createRevisionDraft(): Promise<{
|
|
@@ -47,22 +53,32 @@ export declare abstract class Uploader {
|
|
|
47
53
|
export declare class FileUploader extends Uploader {
|
|
48
54
|
private parentFolderUid;
|
|
49
55
|
private name;
|
|
50
|
-
|
|
56
|
+
protected shouldUseSmallFileUpload: (expectedSize: number) => Promise<boolean>;
|
|
57
|
+
constructor(telemetry: UploadTelemetry, apiService: UploadAPIService, cryptoService: UploadCryptoService, manager: UploadManager, parentFolderUid: string, name: string, metadata: UploadMetadata, onFinish: () => void, shouldUseSmallFileUpload: (expectedSize: number) => Promise<boolean>, signal?: AbortSignal);
|
|
51
58
|
protected createRevisionDraft(): Promise<{
|
|
52
59
|
revisionDraft: NodeRevisionDraft;
|
|
53
60
|
blockVerifier: BlockVerifier;
|
|
54
61
|
}>;
|
|
55
62
|
protected deleteRevisionDraft(revisionDraft: NodeRevisionDraft): Promise<void>;
|
|
63
|
+
protected initSmallFileUploader(stream: ReadableStream, thumbnails: Thumbnail[], onProgress?: (uploadedBytes: number) => void): Promise<{
|
|
64
|
+
nodeRevisionUid: string;
|
|
65
|
+
nodeUid: string;
|
|
66
|
+
}>;
|
|
56
67
|
}
|
|
57
68
|
/**
|
|
58
69
|
* Uploader implementation for a new file revision.
|
|
59
70
|
*/
|
|
60
71
|
export declare class FileRevisionUploader extends Uploader {
|
|
61
72
|
private nodeUid;
|
|
62
|
-
|
|
73
|
+
protected shouldUseSmallFileUpload: (expectedSize: number) => Promise<boolean>;
|
|
74
|
+
constructor(telemetry: UploadTelemetry, apiService: UploadAPIService, cryptoService: UploadCryptoService, manager: UploadManager, nodeUid: string, metadata: UploadMetadata, onFinish: () => void, shouldUseSmallFileUpload: (expectedSize: number) => Promise<boolean>, signal?: AbortSignal);
|
|
63
75
|
protected createRevisionDraft(): Promise<{
|
|
64
76
|
revisionDraft: NodeRevisionDraft;
|
|
65
77
|
blockVerifier: BlockVerifier;
|
|
66
78
|
}>;
|
|
67
79
|
protected deleteRevisionDraft(revisionDraft: NodeRevisionDraft): Promise<void>;
|
|
80
|
+
protected initSmallFileUploader(stream: ReadableStream, thumbnails: Thumbnail[], onProgress?: (uploadedBytes: number) => void): Promise<{
|
|
81
|
+
nodeRevisionUid: string;
|
|
82
|
+
nodeUid: string;
|
|
83
|
+
}>;
|
|
68
84
|
}
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.FileRevisionUploader = exports.FileUploader = exports.Uploader = void 0;
|
|
4
4
|
const blockVerifier_1 = require("./blockVerifier");
|
|
5
5
|
const controller_1 = require("./controller");
|
|
6
|
+
const smallFileUploader_1 = require("./smallFileUploader");
|
|
6
7
|
const streamUploader_1 = require("./streamUploader");
|
|
7
8
|
/**
|
|
8
9
|
* Uploader is generic class responsible for creating a revision draft
|
|
@@ -18,16 +19,18 @@ class Uploader {
|
|
|
18
19
|
manager;
|
|
19
20
|
metadata;
|
|
20
21
|
onFinish;
|
|
22
|
+
shouldUseSmallFileUpload;
|
|
21
23
|
signal;
|
|
22
24
|
controller;
|
|
23
25
|
abortController;
|
|
24
|
-
constructor(telemetry, apiService, cryptoService, manager, metadata, onFinish, signal) {
|
|
26
|
+
constructor(telemetry, apiService, cryptoService, manager, metadata, onFinish, shouldUseSmallFileUpload, signal) {
|
|
25
27
|
this.telemetry = telemetry;
|
|
26
28
|
this.apiService = apiService;
|
|
27
29
|
this.cryptoService = cryptoService;
|
|
28
30
|
this.manager = manager;
|
|
29
31
|
this.metadata = metadata;
|
|
30
32
|
this.onFinish = onFinish;
|
|
33
|
+
this.shouldUseSmallFileUpload = shouldUseSmallFileUpload;
|
|
31
34
|
this.signal = signal;
|
|
32
35
|
this.telemetry = telemetry;
|
|
33
36
|
this.apiService = apiService;
|
|
@@ -35,6 +38,7 @@ class Uploader {
|
|
|
35
38
|
this.manager = manager;
|
|
36
39
|
this.metadata = metadata;
|
|
37
40
|
this.onFinish = onFinish;
|
|
41
|
+
this.shouldUseSmallFileUpload = shouldUseSmallFileUpload;
|
|
38
42
|
this.signal = signal;
|
|
39
43
|
this.abortController = new AbortController();
|
|
40
44
|
if (signal) {
|
|
@@ -77,9 +81,19 @@ class Uploader {
|
|
|
77
81
|
}
|
|
78
82
|
}
|
|
79
83
|
async startUpload(stream, thumbnails, onProgress) {
|
|
84
|
+
const expectedEncryptedTotalSize = this.getExpectedEncryptedTotalSize(thumbnails);
|
|
85
|
+
if (await this.shouldUseSmallFileUpload(expectedEncryptedTotalSize)) {
|
|
86
|
+
return this.initSmallFileUploader(stream, thumbnails, onProgress);
|
|
87
|
+
}
|
|
80
88
|
const uploader = await this.initStreamUploader();
|
|
81
89
|
return uploader.start(stream, thumbnails, onProgress);
|
|
82
90
|
}
|
|
91
|
+
getExpectedEncryptedTotalSize(thumbnails) {
|
|
92
|
+
const thumbnailSize = thumbnails.reduce((acc, thumbnail) => acc + thumbnail.thumbnail.length, 0);
|
|
93
|
+
const totalSize = this.metadata.expectedSize + thumbnailSize;
|
|
94
|
+
const expectedEncryptedTotalSize = totalSize * 1.1; // 10% margin for encryption overhead
|
|
95
|
+
return expectedEncryptedTotalSize;
|
|
96
|
+
}
|
|
83
97
|
async initStreamUploader() {
|
|
84
98
|
const { revisionDraft, blockVerifier } = await this.createRevisionDraft();
|
|
85
99
|
const onFinish = async (failure) => {
|
|
@@ -101,10 +115,12 @@ exports.Uploader = Uploader;
|
|
|
101
115
|
class FileUploader extends Uploader {
|
|
102
116
|
parentFolderUid;
|
|
103
117
|
name;
|
|
104
|
-
|
|
105
|
-
|
|
118
|
+
shouldUseSmallFileUpload;
|
|
119
|
+
constructor(telemetry, apiService, cryptoService, manager, parentFolderUid, name, metadata, onFinish, shouldUseSmallFileUpload, signal) {
|
|
120
|
+
super(telemetry, apiService, cryptoService, manager, metadata, onFinish, shouldUseSmallFileUpload, signal);
|
|
106
121
|
this.parentFolderUid = parentFolderUid;
|
|
107
122
|
this.name = name;
|
|
123
|
+
this.shouldUseSmallFileUpload = shouldUseSmallFileUpload;
|
|
108
124
|
this.parentFolderUid = parentFolderUid;
|
|
109
125
|
this.name = name;
|
|
110
126
|
}
|
|
@@ -131,6 +147,10 @@ class FileUploader extends Uploader {
|
|
|
131
147
|
async deleteRevisionDraft(revisionDraft) {
|
|
132
148
|
await this.manager.deleteDraftNode(revisionDraft.nodeUid);
|
|
133
149
|
}
|
|
150
|
+
async initSmallFileUploader(stream, thumbnails, onProgress) {
|
|
151
|
+
const uploader = new smallFileUploader_1.SmallFileUploader(this.telemetry, this.cryptoService, this.manager, this.metadata, this.onFinish, this.signal, this.parentFolderUid, this.name);
|
|
152
|
+
return uploader.upload(stream, thumbnails, onProgress);
|
|
153
|
+
}
|
|
134
154
|
}
|
|
135
155
|
exports.FileUploader = FileUploader;
|
|
136
156
|
/**
|
|
@@ -138,9 +158,11 @@ exports.FileUploader = FileUploader;
|
|
|
138
158
|
*/
|
|
139
159
|
class FileRevisionUploader extends Uploader {
|
|
140
160
|
nodeUid;
|
|
141
|
-
|
|
142
|
-
|
|
161
|
+
shouldUseSmallFileUpload;
|
|
162
|
+
constructor(telemetry, apiService, cryptoService, manager, nodeUid, metadata, onFinish, shouldUseSmallFileUpload, signal) {
|
|
163
|
+
super(telemetry, apiService, cryptoService, manager, metadata, onFinish, shouldUseSmallFileUpload, signal);
|
|
143
164
|
this.nodeUid = nodeUid;
|
|
165
|
+
this.shouldUseSmallFileUpload = shouldUseSmallFileUpload;
|
|
144
166
|
this.nodeUid = nodeUid;
|
|
145
167
|
}
|
|
146
168
|
async createRevisionDraft() {
|
|
@@ -166,6 +188,10 @@ class FileRevisionUploader extends Uploader {
|
|
|
166
188
|
async deleteRevisionDraft(revisionDraft) {
|
|
167
189
|
await this.manager.deleteDraftRevision(revisionDraft.nodeRevisionUid);
|
|
168
190
|
}
|
|
191
|
+
async initSmallFileUploader(stream, thumbnails, onProgress) {
|
|
192
|
+
const uploader = new smallFileUploader_1.SmallFileRevisionUploader(this.telemetry, this.cryptoService, this.manager, this.metadata, this.onFinish, this.signal, this.nodeUid);
|
|
193
|
+
return uploader.upload(stream, thumbnails, onProgress);
|
|
194
|
+
}
|
|
169
195
|
}
|
|
170
196
|
exports.FileRevisionUploader = FileRevisionUploader;
|
|
171
197
|
//# sourceMappingURL=fileUploader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fileUploader.js","sourceRoot":"","sources":["../../../src/internal/upload/fileUploader.ts"],"names":[],"mappings":";;;AAEA,mDAAgD;AAChD,6CAAgD;AAIhD,qDAAkD;AAGlD;;;;;;GAMG;AACH,MAAsB,QAAQ;IAKZ;IACA;IACA;IACA;IACA;IACA;IACA;
|
|
1
|
+
{"version":3,"file":"fileUploader.js","sourceRoot":"","sources":["../../../src/internal/upload/fileUploader.ts"],"names":[],"mappings":"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"}
|
|
@@ -90,7 +90,7 @@ describe('FileUploader', () => {
|
|
|
90
90
|
controller = new controller_1.UploadController();
|
|
91
91
|
onFinish = jest.fn();
|
|
92
92
|
abortController = new AbortController();
|
|
93
|
-
uploader = new fileUploader_1.FileUploader(telemetry, apiService, cryptoService, uploadManager, 'parentFolderUid', 'name', metadata, onFinish, abortController.signal);
|
|
93
|
+
uploader = new fileUploader_1.FileUploader(telemetry, apiService, cryptoService, uploadManager, 'parentFolderUid', 'name', metadata, onFinish, () => Promise.resolve(false), abortController.signal);
|
|
94
94
|
startUploadSpy = jest.spyOn(uploader, 'startUpload').mockReturnValue(Promise.resolve({
|
|
95
95
|
nodeRevisionUid: 'revisionUid',
|
|
96
96
|
nodeUid: 'nodeUid'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fileUploader.test.js","sourceRoot":"","sources":["../../../src/internal/upload/fileUploader.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fileUploader.test.js","sourceRoot":"","sources":["../../../src/internal/upload/fileUploader.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,6 @@ const cryptoService_1 = require("./cryptoService");
|
|
|
7
7
|
const fileUploader_1 = require("./fileUploader");
|
|
8
8
|
const manager_1 = require("./manager");
|
|
9
9
|
const queue_1 = require("./queue");
|
|
10
|
-
const smallFileUploader_1 = require("./smallFileUploader");
|
|
11
10
|
const telemetry_1 = require("./telemetry");
|
|
12
11
|
const SMALL_FILE_SIZE_LIMIT = 128 * 1024; // 128 KiB
|
|
13
12
|
/**
|
|
@@ -23,12 +22,12 @@ function initUploadModule(telemetry, apiService, driveCrypto, sharesService, nod
|
|
|
23
22
|
const uploadTelemetry = new telemetry_1.UploadTelemetry(telemetry, sharesService);
|
|
24
23
|
const manager = new manager_1.UploadManager(telemetry, api, cryptoService, nodesService, clientUid);
|
|
25
24
|
const queue = new queue_1.UploadQueue();
|
|
26
|
-
async function
|
|
25
|
+
async function shouldUseSmallFileUpload(expectedSize) {
|
|
27
26
|
const isEnabled = allowSmallFileUpload && (await featureFlagProvider.isEnabled(interface_1.FeatureFlags.DriveSmallFileUpload));
|
|
28
27
|
if (!isEnabled) {
|
|
29
28
|
return false;
|
|
30
29
|
}
|
|
31
|
-
return
|
|
30
|
+
return expectedSize < SMALL_FILE_SIZE_LIMIT;
|
|
32
31
|
}
|
|
33
32
|
/**
|
|
34
33
|
* Returns a FileUploader instance that can be used to upload a file to
|
|
@@ -42,10 +41,7 @@ function initUploadModule(telemetry, apiService, driveCrypto, sharesService, nod
|
|
|
42
41
|
const onFinish = () => {
|
|
43
42
|
queue.releaseCapacity(metadata.expectedSize);
|
|
44
43
|
};
|
|
45
|
-
|
|
46
|
-
return new smallFileUploader_1.SmallFileUploader(uploadTelemetry, api, cryptoService, manager, metadata, onFinish, signal, parentFolderUid, name);
|
|
47
|
-
}
|
|
48
|
-
return new fileUploader_1.FileUploader(uploadTelemetry, api, cryptoService, manager, parentFolderUid, name, metadata, onFinish, signal);
|
|
44
|
+
return new fileUploader_1.FileUploader(uploadTelemetry, api, cryptoService, manager, parentFolderUid, name, metadata, onFinish, shouldUseSmallFileUpload, signal);
|
|
49
45
|
}
|
|
50
46
|
/**
|
|
51
47
|
* Returns a FileUploader instance that can be used to upload a new
|
|
@@ -59,10 +55,7 @@ function initUploadModule(telemetry, apiService, driveCrypto, sharesService, nod
|
|
|
59
55
|
const onFinish = () => {
|
|
60
56
|
queue.releaseCapacity(metadata.expectedSize);
|
|
61
57
|
};
|
|
62
|
-
|
|
63
|
-
return new smallFileUploader_1.SmallFileRevisionUploader(uploadTelemetry, api, cryptoService, manager, metadata, onFinish, signal, nodeUid);
|
|
64
|
-
}
|
|
65
|
-
return new fileUploader_1.FileRevisionUploader(uploadTelemetry, api, cryptoService, manager, nodeUid, metadata, onFinish, signal);
|
|
58
|
+
return new fileUploader_1.FileRevisionUploader(uploadTelemetry, api, cryptoService, manager, nodeUid, metadata, onFinish, shouldUseSmallFileUpload, signal);
|
|
66
59
|
}
|
|
67
60
|
return {
|
|
68
61
|
getFileUploader,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/internal/upload/index.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/internal/upload/index.ts"],"names":[],"mappings":";;AAqBA,4CA+FC;AApHD,+CAA0G;AAI1G,6CAAgD;AAChD,mDAAsD;AACtD,iDAAyF;AAEzF,uCAA0C;AAC1C,mCAAsC;AACtC,2CAA8C;AAE9C,MAAM,qBAAqB,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,UAAU;AAEpD;;;;;;GAMG;AACH,SAAgB,gBAAgB,CAC5B,SAA+B,EAC/B,UAA2B,EAC3B,WAAwB,EACxB,aAA4B,EAC5B,YAA0B,EAC1B,mBAAwC,EACxC,SAAkB,EAClB,uBAAgC,IAAI;IAEpC,MAAM,GAAG,GAAG,IAAI,6BAAgB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IACxD,MAAM,aAAa,GAAG,IAAI,mCAAmB,CAAC,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,mBAAmB,CAAC,CAAC;IAEzG,MAAM,eAAe,GAAG,IAAI,2BAAe,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IACtE,MAAM,OAAO,GAAG,IAAI,uBAAa,CAAC,SAAS,EAAE,GAAG,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;IAE1F,MAAM,KAAK,GAAG,IAAI,mBAAW,EAAE,CAAC;IAEhC,KAAK,UAAU,wBAAwB,CAAC,YAAoB;QACxD,MAAM,SAAS,GACX,oBAAoB,IAAI,CAAC,MAAM,mBAAmB,CAAC,SAAS,CAAC,wBAAY,CAAC,oBAAoB,CAAC,CAAC,CAAC;QACrG,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,OAAO,YAAY,GAAG,qBAAqB,CAAC;IAChD,CAAC;IAED;;;;;;OAMG;IACH,KAAK,UAAU,eAAe,CAC1B,eAAuB,EACvB,IAAY,EACZ,QAAwB,EACxB,MAAoB;QAEpB,MAAM,KAAK,CAAC,eAAe,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QAE3D,MAAM,QAAQ,GAAG,GAAG,EAAE;YAClB,KAAK,CAAC,eAAe,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QACjD,CAAC,CAAC;QAEF,OAAO,IAAI,2BAAiB,CACxB,eAAe,EACf,GAAG,EACH,aAAa,EACb,OAAO,EACP,eAAe,EACf,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,wBAAwB,EACxB,MAAM,CACT,CAAC;IACN,CAAC;IAED;;;;;;OAMG;IACH,KAAK,UAAU,uBAAuB,CAClC,OAAe,EACf,QAAwB,EACxB,MAAoB;QAEpB,MAAM,KAAK,CAAC,eAAe,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QAE3D,MAAM,QAAQ,GAAG,GAAG,EAAE;YAClB,KAAK,CAAC,eAAe,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QACjD,CAAC,CAAC;QAEF,OAAO,IAAI,mCAAoB,CAC3B,eAAe,EACf,GAAG,EACH,aAAa,EACb,OAAO,EACP,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,wBAAwB,EACxB,MAAM,CACT,CAAC;IACN,CAAC;IAED,OAAO;QACH,eAAe;QACf,uBAAuB;KAC1B,CAAC;AACN,CAAC"}
|