2
0
Fork 0
mirror of https://git.asonix.dog/asonix/pict-rs synced 2024-12-22 19:31:35 +00:00

ffmpeg features, sled 034

This commit is contained in:
asonix 2020-09-10 11:12:42 -05:00
parent a069122d80
commit 4a3bd42c14
4 changed files with 404 additions and 353 deletions

700
Cargo.lock generated

File diff suppressed because it is too large Load diff

View file

@ -10,6 +10,11 @@ edition = "2018"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[features]
ffmpeg43 = ["ffmpeg", "ffmpeg-next/ffmpeg43"]
ffmpeg42 = ["ffmpeg", "ffmpeg-next/ffmpeg42"]
ffmpeg = ["ffmpeg-next/codec", "ffmpeg-next/filter", "ffmpeg-next/device", "ffmpeg-next/format", "ffmpeg-next/resampling", "ffmpeg-next/postprocessing", "ffmpeg-next/software-resampling", "ffmpeg-next/software-scaling"]
[dependencies] [dependencies]
actix-form-data = { git = "https://git.asonix.dog/Aardwolf/actix-form-data" } actix-form-data = { git = "https://git.asonix.dog/Aardwolf/actix-form-data" }
actix-fs = { git = "https://git.asonix.dog/asonix/actix-fs", branch = "main" } actix-fs = { git = "https://git.asonix.dog/asonix/actix-fs", branch = "main" }
@ -27,7 +32,8 @@ rexiv2 = { version = "0.9.0", git = "https://git.asonix.dog/asonix/rexiv2" }
serde = { version = "1.0", features = ["derive"] } serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0" serde_json = "1.0"
sha2 = "0.9.0" sha2 = "0.9.0"
sled = "0.32.0" sled032 = { version = "0.32.0", package = "sled" }
sled = { version = "0.34.4" }
structopt = "0.3.14" structopt = "0.3.14"
thiserror = "1.0" thiserror = "1.0"
tracing = "0.1.15" tracing = "0.1.15"

View file

@ -9,6 +9,9 @@ pub(crate) enum UploadError {
#[error("Couldn't save file, {0}")] #[error("Couldn't save file, {0}")]
Save(#[from] actix_fs::Error), Save(#[from] actix_fs::Error),
#[error("Error in DB migration, {0}")]
Migrate(#[from] sled032::Error),
#[error("Error in DB, {0}")] #[error("Error in DB, {0}")]
Db(#[from] sled::Error), Db(#[from] sled::Error),

View file

@ -1,8 +1,10 @@
use crate::UploadError; use crate::UploadError;
use sled as sled032; use sled as sled034;
use sled032;
use std::path::PathBuf; use std::path::PathBuf;
use tracing::{debug, info, warn}; use tracing::{debug, info, warn};
const SLED_034: &str = "db-0.34";
const SLED_032: &str = "db-0.32"; const SLED_032: &str = "db-0.32";
const SLED_0320_RC1: &str = "db"; const SLED_0320_RC1: &str = "db";
@ -18,7 +20,7 @@ impl LatestDb {
LatestDb { root_dir, version } LatestDb { root_dir, version }
} }
pub(crate) fn migrate(self) -> Result<sled032::Db, UploadError> { pub(crate) fn migrate(self) -> Result<sled034::Db, UploadError> {
let LatestDb { root_dir, version } = self; let LatestDb { root_dir, version } = self;
version.migrate(root_dir) version.migrate(root_dir)
@ -28,11 +30,19 @@ impl LatestDb {
enum DbVersion { enum DbVersion {
Sled0320Rc1, Sled0320Rc1,
Sled032, Sled032,
Sled034,
Fresh, Fresh,
} }
impl DbVersion { impl DbVersion {
fn exists(root: PathBuf) -> Self { fn exists(root: PathBuf) -> Self {
let mut sled_dir = root.clone();
sled_dir.push("sled");
sled_dir.push(SLED_034);
if std::fs::metadata(sled_dir).is_ok() {
return DbVersion::Sled034;
}
let mut sled_dir = root.clone(); let mut sled_dir = root.clone();
sled_dir.push("sled"); sled_dir.push("sled");
sled_dir.push(SLED_032); sled_dir.push(SLED_032);
@ -49,17 +59,39 @@ impl DbVersion {
DbVersion::Fresh DbVersion::Fresh
} }
fn migrate(self, root: PathBuf) -> Result<sled032::Db, UploadError> { fn migrate(self, root: PathBuf) -> Result<sled034::Db, UploadError> {
match self { match self {
DbVersion::Sled0320Rc1 => migrate_0_32_0_rc1(root), DbVersion::Sled0320Rc1 => {
DbVersion::Sled032 | DbVersion::Fresh => { migrate_0_32_0_rc1(root.clone())?;
migrate_0_32(root)
}
DbVersion::Sled032 => migrate_0_32(root),
DbVersion::Sled034 | DbVersion::Fresh => {
let mut sled_dir = root; let mut sled_dir = root;
sled_dir.push("sled"); sled_dir.push("sled");
sled_dir.push(SLED_034);
Ok(sled034::open(sled_dir)?)
}
}
}
}
fn migrate_0_32(mut root: PathBuf) -> Result<sled034::Db, UploadError> {
info!("Migrating database from 0.32 to 0.34");
root.push("sled");
let mut sled_dir = root.clone();
sled_dir.push(SLED_032); sled_dir.push(SLED_032);
Ok(sled032::open(sled_dir)?)
} let mut new_sled_dir = root.clone();
} new_sled_dir.push(SLED_034);
}
let old_db = sled032::open(sled_dir)?;
let new_db = sled034::open(new_sled_dir)?;
new_db.import(old_db.export());
Ok(new_db)
} }
fn migrate_0_32_0_rc1(root: PathBuf) -> Result<sled032::Db, UploadError> { fn migrate_0_32_0_rc1(root: PathBuf) -> Result<sled032::Db, UploadError> {