A crate providing access to the Postgres large object API.
externcrate postgres;externcrate postgres_large_object;use std::fs::File;use std::io;use postgres::{Connection,TlsMode};use postgres_large_object::{LargeObjectExt,LargeObjectTransactionExt,Mode};fnmain(){let conn = Connection::connect("postgres://postgres@localhost",TlsMode::None).unwrap();letmut file = File::open("vacation_photos.tar.gz").unwrap();let trans = conn.transaction().unwrap();let oid = trans.create_large_object().unwrap();{letmut large_object = trans.open_large_object(oid,Mode::Write).unwrap();
io::copy(&mut file,&mut large_object).unwrap();}
trans.commit().unwrap();letmut file = File::create("vacation_photos_copy.tar.gz").unwrap();let trans = conn.transaction().unwrap();letmut large_object = trans.open_large_object(oid,Mode::Read).unwrap();
io::copy(&mut large_object,&mut file).unwrap();}Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you shall be dual licensed as above, without any additional terms or conditions.