Fix exif local storage
This commit is contained in:
parent
709c4e959c
commit
f8f589f975
|
@ -1,11 +1,13 @@
|
||||||
import 'package:exif/exif.dart';
|
import 'package:exif/exif.dart';
|
||||||
import 'package:flutter/foundation.dart';
|
import 'package:flutter/foundation.dart';
|
||||||
|
import 'package:flutter_sodium/flutter_sodium.dart';
|
||||||
import 'package:path/path.dart';
|
import 'package:path/path.dart';
|
||||||
import 'package:photo_manager/photo_manager.dart';
|
import 'package:photo_manager/photo_manager.dart';
|
||||||
import 'package:photos/core/configuration.dart';
|
import 'package:photos/core/configuration.dart';
|
||||||
import 'package:photos/core/constants.dart';
|
import 'package:photos/core/constants.dart';
|
||||||
import 'package:photos/models/file_type.dart';
|
import 'package:photos/models/file_type.dart';
|
||||||
import 'package:photos/models/location.dart';
|
import 'package:photos/models/location.dart';
|
||||||
|
import 'package:photos/utils/crypto_util.dart';
|
||||||
|
|
||||||
class File {
|
class File {
|
||||||
int generatedID;
|
int generatedID;
|
||||||
|
@ -24,14 +26,14 @@ class File {
|
||||||
int duration;
|
int duration;
|
||||||
String exif;
|
String exif;
|
||||||
String hash;
|
String hash;
|
||||||
int metadataVersion = 1;
|
int metadataVersion;
|
||||||
String encryptedKey;
|
String encryptedKey;
|
||||||
String keyDecryptionNonce;
|
String keyDecryptionNonce;
|
||||||
String fileDecryptionHeader;
|
String fileDecryptionHeader;
|
||||||
String thumbnailDecryptionHeader;
|
String thumbnailDecryptionHeader;
|
||||||
String metadataDecryptionHeader;
|
String metadataDecryptionHeader;
|
||||||
|
|
||||||
static const kMetadataVersion = 1;
|
static const kCurrentMetadataVersion = 1;
|
||||||
|
|
||||||
File();
|
File();
|
||||||
|
|
||||||
|
@ -57,6 +59,7 @@ class File {
|
||||||
}
|
}
|
||||||
file.modificationTime = asset.modifiedDateTime.microsecondsSinceEpoch;
|
file.modificationTime = asset.modifiedDateTime.microsecondsSinceEpoch;
|
||||||
file.fileSubType = asset.subTypes;
|
file.fileSubType = asset.subTypes;
|
||||||
|
file.metadataVersion = kCurrentMetadataVersion;
|
||||||
return file;
|
return file;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -126,14 +129,18 @@ class File {
|
||||||
}
|
}
|
||||||
metadata["fileType"] = fileType.index;
|
metadata["fileType"] = fileType.index;
|
||||||
final asset = await getAsset();
|
final asset = await getAsset();
|
||||||
metadata["subType"] = asset.subTypes;
|
fileSubType = asset.subTypes;
|
||||||
|
metadata["subType"] = fileSubType;
|
||||||
if (fileType == FileType.video) {
|
if (fileType == FileType.video) {
|
||||||
metadata["duration"] = asset.duration;
|
duration = asset.duration;
|
||||||
|
metadata["duration"] = duration;
|
||||||
} else {
|
} else {
|
||||||
metadata["exif"] = await readExifFromFile(await asset.originFile);
|
exif = (await readExifFromFile(await asset.originFile)).toString();
|
||||||
|
metadata["exif"] = exif;
|
||||||
}
|
}
|
||||||
|
hash = Sodium.bin2base64(await CryptoUtil.getHash(await asset.originFile));
|
||||||
metadata["hash"] = hash;
|
metadata["hash"] = hash;
|
||||||
metadata["version"] = kMetadataVersion;
|
metadata["version"] = metadataVersion;
|
||||||
return metadata;
|
return metadata;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -318,9 +318,6 @@ class FileUploader {
|
||||||
final fileUploadURL = await _getUploadURL();
|
final fileUploadURL = await _getUploadURL();
|
||||||
String fileObjectKey = await _putFile(fileUploadURL, encryptedFile);
|
String fileObjectKey = await _putFile(fileUploadURL, encryptedFile);
|
||||||
|
|
||||||
file.hash = Sodium.bin2base64(
|
|
||||||
await CryptoUtil.getHash(mediaUploadData.sourceFile));
|
|
||||||
|
|
||||||
final metadata = await file.getMetadata();
|
final metadata = await file.getMetadata();
|
||||||
final encryptedMetadataData = await CryptoUtil.encryptChaCha(
|
final encryptedMetadataData = await CryptoUtil.encryptChaCha(
|
||||||
utf8.encode(jsonEncode(metadata)), fileAttributes.key);
|
utf8.encode(jsonEncode(metadata)), fileAttributes.key);
|
||||||
|
|
Loading…
Reference in a new issue