mirror of
https://github.com/ente-io/ente.git
synced 2025-08-08 23:39:30 +00:00
fix: add file key in table
This commit is contained in:
parent
ce3a3bd802
commit
1ca2721dae
@ -62,10 +62,14 @@ class UploadLocksDB {
|
|||||||
final Directory documentsDirectory =
|
final Directory documentsDirectory =
|
||||||
await getApplicationDocumentsDirectory();
|
await getApplicationDocumentsDirectory();
|
||||||
final String path = join(documentsDirectory.path, _databaseName);
|
final String path = join(documentsDirectory.path, _databaseName);
|
||||||
|
|
||||||
return await openDatabase(
|
return await openDatabase(
|
||||||
path,
|
path,
|
||||||
version: _databaseVersion,
|
version: _databaseVersion,
|
||||||
onCreate: _onCreate,
|
onCreate: _onCreate,
|
||||||
|
onOpen: (db) async {
|
||||||
|
await _createTrackUploadsTable(db);
|
||||||
|
},
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -79,10 +83,25 @@ class UploadLocksDB {
|
|||||||
)
|
)
|
||||||
''',
|
''',
|
||||||
);
|
);
|
||||||
|
await _createTrackUploadsTable(db);
|
||||||
|
}
|
||||||
|
|
||||||
|
Future _createTrackUploadsTable(Database db) async {
|
||||||
|
if ((await db.query(
|
||||||
|
'sqlite_master',
|
||||||
|
where: 'name = ?',
|
||||||
|
whereArgs: [
|
||||||
|
_trackUploadTable.table,
|
||||||
|
],
|
||||||
|
))
|
||||||
|
.isNotEmpty) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
await db.execute(
|
await db.execute(
|
||||||
'''
|
'''
|
||||||
CREATE TABLE ${_trackUploadTable.table} (
|
CREATE TABLE ${_trackUploadTable.table} (
|
||||||
${_trackUploadTable.columnID} TEXT PRIMARY KEY NOT NULL,
|
${_trackUploadTable.columnID} INTEGER PRIMARY KEY,
|
||||||
${_trackUploadTable.columnLocalID} TEXT NOT NULL,
|
${_trackUploadTable.columnLocalID} TEXT NOT NULL,
|
||||||
${_trackUploadTable.columnFileHash} TEXT NOT NULL UNIQUE,
|
${_trackUploadTable.columnFileHash} TEXT NOT NULL UNIQUE,
|
||||||
${_trackUploadTable.columnEncryptedFilePath} TEXT NOT NULL,
|
${_trackUploadTable.columnEncryptedFilePath} TEXT NOT NULL,
|
||||||
@ -170,7 +189,12 @@ class UploadLocksDB {
|
|||||||
// For multipart download tracking
|
// For multipart download tracking
|
||||||
Future<bool> doesExists(String localId, String hash) async {
|
Future<bool> doesExists(String localId, String hash) async {
|
||||||
final db = await instance.database;
|
final db = await instance.database;
|
||||||
final rows = await db.query(_trackUploadTable.table);
|
final rows = await db.query(
|
||||||
|
_trackUploadTable.table,
|
||||||
|
where:
|
||||||
|
'${_trackUploadTable.columnLocalID} = ? AND ${_trackUploadTable.columnFileHash} = ?',
|
||||||
|
);
|
||||||
|
|
||||||
return rows.isNotEmpty;
|
return rows.isNotEmpty;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -227,6 +251,7 @@ class UploadLocksDB {
|
|||||||
MultipartUploadURLs urls,
|
MultipartUploadURLs urls,
|
||||||
String encryptedFilePath,
|
String encryptedFilePath,
|
||||||
int fileSize,
|
int fileSize,
|
||||||
|
String fileKey,
|
||||||
) async {
|
) async {
|
||||||
final db = await UploadLocksDB.instance.database;
|
final db = await UploadLocksDB.instance.database;
|
||||||
final objectKey = urls.objectKey;
|
final objectKey = urls.objectKey;
|
||||||
@ -240,6 +265,7 @@ class UploadLocksDB {
|
|||||||
_trackUploadTable.columnCompleteUrl: urls.completeURL,
|
_trackUploadTable.columnCompleteUrl: urls.completeURL,
|
||||||
_trackUploadTable.columnEncryptedFilePath: encryptedFilePath,
|
_trackUploadTable.columnEncryptedFilePath: encryptedFilePath,
|
||||||
_trackUploadTable.columnEncryptedFileSize: fileSize,
|
_trackUploadTable.columnEncryptedFileSize: fileSize,
|
||||||
|
_trackUploadTable.columnFileKey: fileKey,
|
||||||
_trackUploadTable.columnCompletionStatus: _trackStatus.pending,
|
_trackUploadTable.columnCompletionStatus: _trackStatus.pending,
|
||||||
_trackUploadTable.columnPartSize: multipartPartSize,
|
_trackUploadTable.columnPartSize: multipartPartSize,
|
||||||
},
|
},
|
||||||
|
@ -522,6 +522,7 @@ class FileUploader {
|
|||||||
fileUploadURLs,
|
fileUploadURLs,
|
||||||
encryptedFilePath,
|
encryptedFilePath,
|
||||||
await encryptedFile.length(),
|
await encryptedFile.length(),
|
||||||
|
fileAttributes.key!,
|
||||||
);
|
);
|
||||||
fileObjectKey = await putMultipartFile(fileUploadURLs, encryptedFile);
|
fileObjectKey = await putMultipartFile(fileUploadURLs, encryptedFile);
|
||||||
}
|
}
|
||||||
|
@ -1,12 +1,14 @@
|
|||||||
// ignore_for_file: implementation_imports
|
// ignore_for_file: implementation_imports
|
||||||
|
|
||||||
import "dart:io";
|
import "dart:io";
|
||||||
|
import "dart:typed_data";
|
||||||
|
|
||||||
import "package:dio/dio.dart";
|
import "package:dio/dio.dart";
|
||||||
import "package:logging/logging.dart";
|
import "package:logging/logging.dart";
|
||||||
import "package:photos/core/constants.dart";
|
import "package:photos/core/constants.dart";
|
||||||
import "package:photos/core/network/network.dart";
|
import "package:photos/core/network/network.dart";
|
||||||
import "package:photos/db/upload_locks_db.dart";
|
import "package:photos/db/upload_locks_db.dart";
|
||||||
|
import "package:photos/utils/crypto_util.dart";
|
||||||
import "package:photos/utils/xml_parser_util.dart";
|
import "package:photos/utils/xml_parser_util.dart";
|
||||||
|
|
||||||
final _enteDio = NetworkClient.instance.enteDio;
|
final _enteDio = NetworkClient.instance.enteDio;
|
||||||
@ -79,6 +81,7 @@ Future<void> createTableEntry(
|
|||||||
MultipartUploadURLs urls,
|
MultipartUploadURLs urls,
|
||||||
String encryptedFilePath,
|
String encryptedFilePath,
|
||||||
int fileSize,
|
int fileSize,
|
||||||
|
Uint8List fileKey,
|
||||||
) async {
|
) async {
|
||||||
await UploadLocksDB.instance.createTrackUploadsEntry(
|
await UploadLocksDB.instance.createTrackUploadsEntry(
|
||||||
localId,
|
localId,
|
||||||
@ -86,6 +89,7 @@ Future<void> createTableEntry(
|
|||||||
urls,
|
urls,
|
||||||
encryptedFilePath,
|
encryptedFilePath,
|
||||||
fileSize,
|
fileSize,
|
||||||
|
CryptoUtil.bin2base64(fileKey),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user