[mob] Skip dup fileID from src collection during copy (#6612)

## Description

## Tests
This commit is contained in:
Neeraj
2025-07-23 15:46:16 +05:30
committed by GitHub

View File

@@ -1427,12 +1427,20 @@ class CollectionsService {
}
// group files by collectionID
final Map<int, List<EnteFile>> filesByCollection = {};
final Map<int, Set<int>> fileSeenByCollection = {};
for (final file in filesToCopy) {
if (filesByCollection.containsKey(file.collectionID!)) {
filesByCollection[file.collectionID!]!.add(file.copyWith());
} else {
filesByCollection[file.collectionID!] = [file.copyWith()];
fileSeenByCollection.putIfAbsent(file.collectionID!, () => <int>{});
if (fileSeenByCollection[file.collectionID]!
.contains(file.uploadedFileID)) {
_logger.warning(
"skip copy, duplicate ID: ${file.uploadedFileID} in collection "
"${file.collectionID}",
);
continue;
}
filesByCollection
.putIfAbsent(file.collectionID!, () => [])
.add(file.copyWith());
}
for (final entry in filesByCollection.entries) {
final srcCollectionID = entry.key;
@@ -1579,9 +1587,6 @@ class CollectionsService {
params["files"] = [];
for (final batchFile in batch) {
final fileKey = getFileKey(batchFile);
_logger.info(
"srcCollection : $srcCollectionID file: ${batchFile.uploadedFileID} key: ${CryptoUtil.bin2base64(fileKey)} ",
);
final encryptedKeyData =
CryptoUtil.encryptSync(fileKey, getCollectionKey(dstCollectionID));
batchFile.encryptedKey =