The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]metanet.ch.
dbflobr
reads and writes files to SQLite databases as flobs. A flob is a
blob that preserves the
file extension.
To install the latest release from CRAN
install.packages("dbflobr")
To install the developmental version from GitHub
# install.packages("remotes")
::install_github("poissonconsulting/dbflobr") remotes
library(dbflobr)
# convert a file to flob using flobr
<- flobr::flob(system.file("extdata", "flobr.pdf", package = "flobr"))
flob str(flob)
#> List of 1
#> $ /Library/Frameworks/R.framework/Versions/4.1/Resources/library/flobr/extdata/flobr.pdf: raw [1:133851] 58 0a 00 00 ...
#> - attr(*, "class")= chr [1:2] "flob" "blob"
# create a SQLite database connection
<- DBI::dbConnect(RSQLite::SQLite(), ":memory:")
conn
# create a table 'Table1' of data
::dbWriteTable(conn, "Table1", data.frame(IntColumn = c(1L, 2L)))
DBI
::dbReadTable(conn, "Table1")
DBI#> IntColumn
#> 1 1
#> 2 2
# specify which row to add the flob to by providing a key
<- data.frame(IntColumn = 2L)
key
# write the flob to the database in column 'BlobColumn'
write_flob(flob, "BlobColumn", "Table1", key, conn, exists = FALSE)
::dbReadTable(conn, "Table1")
DBI#> IntColumn BlobColumn
#> 1 1 <NA>
#> 2 2 blob[133.85 kB]
# read the flob
<- read_flob("BlobColumn", "Table1", key, conn)
flob2 str(flob2)
#> List of 1
#> $ BlobColumn: raw [1:133851] 58 0a 00 00 ...
#> - attr(*, "class")= chr [1:2] "flob" "blob"
# delete the flob
delete_flob("BlobColumn", "Table1", key, conn)
::dbReadTable(conn, "Table1")
DBI#> IntColumn BlobColumn
#> 1 1 <NA>
#> 2 2 <NA>
# close the connection
::dbDisconnect(conn) DBI
Please report any issues.
Pull requests are always welcome.
Please note that the dbflobr project is released with a Contributor Code of Conduct. By contributing to this project, you agree to abide by its terms
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.