fix: add file key in table
This commit is contained in:
parent
ce3a3bd802
commit
1ca2721dae
3 changed files with 33 additions and 2 deletions
|
@ -62,10 +62,14 @@ class UploadLocksDB {
|
|||
final Directory documentsDirectory =
|
||||
await getApplicationDocumentsDirectory();
|
||||
final String path = join(documentsDirectory.path, _databaseName);
|
||||
|
||||
return await openDatabase(
|
||||
path,
|
||||
version: _databaseVersion,
|
||||
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(
|
||||
'''
|
||||
CREATE TABLE ${_trackUploadTable.table} (
|
||||
${_trackUploadTable.columnID} TEXT PRIMARY KEY NOT NULL,
|
||||
${_trackUploadTable.columnID} INTEGER PRIMARY KEY,
|
||||
${_trackUploadTable.columnLocalID} TEXT NOT NULL,
|
||||
${_trackUploadTable.columnFileHash} TEXT NOT NULL UNIQUE,
|
||||
${_trackUploadTable.columnEncryptedFilePath} TEXT NOT NULL,
|
||||
|
@ -170,7 +189,12 @@ class UploadLocksDB {
|
|||
// For multipart download tracking
|
||||
Future<bool> doesExists(String localId, String hash) async {
|
||||
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;
|
||||
}
|
||||
|
||||
|
@ -227,6 +251,7 @@ class UploadLocksDB {
|
|||
MultipartUploadURLs urls,
|
||||
String encryptedFilePath,
|
||||
int fileSize,
|
||||
String fileKey,
|
||||
) async {
|
||||
final db = await UploadLocksDB.instance.database;
|
||||
final objectKey = urls.objectKey;
|
||||
|
@ -240,6 +265,7 @@ class UploadLocksDB {
|
|||
_trackUploadTable.columnCompleteUrl: urls.completeURL,
|
||||
_trackUploadTable.columnEncryptedFilePath: encryptedFilePath,
|
||||
_trackUploadTable.columnEncryptedFileSize: fileSize,
|
||||
_trackUploadTable.columnFileKey: fileKey,
|
||||
_trackUploadTable.columnCompletionStatus: _trackStatus.pending,
|
||||
_trackUploadTable.columnPartSize: multipartPartSize,
|
||||
},
|
||||
|
|
|
@ -522,6 +522,7 @@ class FileUploader {
|
|||
fileUploadURLs,
|
||||
encryptedFilePath,
|
||||
await encryptedFile.length(),
|
||||
fileAttributes.key!,
|
||||
);
|
||||
fileObjectKey = await putMultipartFile(fileUploadURLs, encryptedFile);
|
||||
}
|
||||
|
|
|
@ -1,12 +1,14 @@
|
|||
// ignore_for_file: implementation_imports
|
||||
|
||||
import "dart:io";
|
||||
import "dart:typed_data";
|
||||
|
||||
import "package:dio/dio.dart";
|
||||
import "package:logging/logging.dart";
|
||||
import "package:photos/core/constants.dart";
|
||||
import "package:photos/core/network/network.dart";
|
||||
import "package:photos/db/upload_locks_db.dart";
|
||||
import "package:photos/utils/crypto_util.dart";
|
||||
import "package:photos/utils/xml_parser_util.dart";
|
||||
|
||||
final _enteDio = NetworkClient.instance.enteDio;
|
||||
|
@ -79,6 +81,7 @@ Future<void> createTableEntry(
|
|||
MultipartUploadURLs urls,
|
||||
String encryptedFilePath,
|
||||
int fileSize,
|
||||
Uint8List fileKey,
|
||||
) async {
|
||||
await UploadLocksDB.instance.createTrackUploadsEntry(
|
||||
localId,
|
||||
|
@ -86,6 +89,7 @@ Future<void> createTableEntry(
|
|||
urls,
|
||||
encryptedFilePath,
|
||||
fileSize,
|
||||
CryptoUtil.bin2base64(fileKey),
|
||||
);
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue