Nothing
skip_if_not(minio_available(), "Minio Not Available")
Sys.setenv(AWS_PROFILE = "minio")
buckets_empty()
demo_rds_file <- file.path(system.file(), "Meta/demo.rds")
links_file <- file.path(system.file(), "Meta/links.rds")
test_that("aws_bucket_create", {
expect_error(aws_bucket_create())
expect_error(aws_bucket_create(5))
expect_error(aws_bucket_create(letters))
bucket <- random_bucket()
expect_false(aws_bucket_exists(bucket))
aws_bucket_create(bucket)
expect_true(aws_bucket_exists(bucket))
})
test_that("aws_bucket_exists", {
expect_error(aws_bucket_exists())
expect_error(aws_bucket_exists(5))
expect_error(aws_bucket_exists(letters))
bucket <- random_bucket()
# bucket DOES NOT exist, gives FALSE
expect_false(aws_bucket_exists(bucket))
# bucket DOES exist, also FALSE
aws_bucket_create(bucket)
expect_true(aws_bucket_exists(bucket))
bucket_delete(bucket, force = TRUE)
})
test_that("aws_bucket_delete", {
expect_error(aws_bucket_delete())
expect_error(aws_bucket_delete(5))
expect_error(aws_bucket_delete(letters))
bucket <- random_bucket()
aws_bucket_create(bucket)
expect_true(aws_bucket_exists(bucket))
res <- aws_bucket_delete(bucket, force = TRUE)
expect_null(res)
expect_false(aws_bucket_exists(bucket))
})
test_that("aws_bucket_download", {
expect_error(aws_bucket_download())
expect_error(aws_bucket_download(""))
bucket <- random_bucket()
aws_bucket_create(bucket)
aws_file_upload(demo_rds_file, s3_path(bucket, basename(demo_rds_file)))
aws_file_upload(links_file, s3_path(bucket, basename(links_file)))
temp_dir <- file.path(tempdir(), "tmp-bucket-369")
expect_length(list.files(temp_dir), 0)
aws_bucket_download(bucket = bucket, dest_path = temp_dir)
expect_length(list.files(temp_dir), 2)
bucket_delete(bucket, force = TRUE)
})
test_that("aws_bucket_upload", {
expect_error(aws_bucket_upload())
expect_error(aws_bucket_upload(""))
res <- aws_bucket_upload(
file.path(system.file(), "Meta"),
"metabucket",
force = TRUE
)
expect_equal(NROW(aws_bucket_list_objects("metabucket")), 6)
expect_type(res, "character")
bucket_delete("metabucket", force = TRUE)
})
test_that("aws_bucket_list_objects", {
expect_error(aws_bucket_list_objects())
expect_error(aws_bucket_list_objects(5))
bucket <- random_bucket()
aws_bucket_create(bucket)
ffs <- list.files(file.path(system.file(), "Meta"), full.names = TRUE)
for (f in ffs) aws_file_upload(f, s3_path(bucket, basename(f)))
res <- aws_bucket_list_objects(bucket)
expect_s3_class(res, "tbl")
expect_equal(NROW(res), 6)
expect_s3_class(res$size, "fs_bytes")
bucket_delete(bucket, force = TRUE)
})
test_that("aws_buckets", {
for (i in replicate(10, random_bucket())) aws_bucket_create(i)
res <- aws_buckets()
expect_s3_class(res, "tbl")
expect_gt(NROW(res), 5)
buckets_empty()
})
test_that("aws_bucket_tree", {
expect_error(aws_bucket_tree())
expect_error(aws_bucket_tree("", 5))
bucket <- random_bucket()
aws_bucket_create(bucket)
ffs <- list.files(file.path(system.file(), "Meta"), full.names = TRUE)
for (f in ffs) aws_file_upload(f, s3_path(bucket, basename(f)))
expect_output(
res <- aws_bucket_tree(bucket),
"s3://"
)
expect_type(res, "character")
expect_length(res, 6)
bucket_delete(bucket, force = TRUE)
})
test_that("six_bucket_upload, single file", {
bucket <- random_bucket()
demo_rds_file <- file.path(system.file(), "Meta/demo.rds")
res <- six_bucket_upload(path = demo_rds_file, remote = bucket, force = TRUE)
objs <- aws_bucket_list_objects(bucket)
expect_type(res, "character")
expect_length(res, 1)
expect_match(res, bucket) # bucket is in each s3 path
expect_equal(NROW(objs), 1)
expect_equal(objs$key, basename(demo_rds_file))
})
test_that("six_bucket_upload, mixed inputs (file and dir)", {
bucket <- random_bucket()
library(fs)
demo_rds_file <- file.path(system.file(), "Meta/demo.rds")
tdir <- path(path_temp(), "mytmp")
dir_create(tdir)
purrr::map(letters, \(l) file_create(path(tdir, l)))
res <- suppressMessages(
six_bucket_upload(
path = c(demo_rds_file, tdir),
remote = bucket,
force = TRUE
)
)
objs <- aws_bucket_list_objects(bucket)
expect_type(res, "character")
expect_length(res, 27)
expect_match(res, bucket) # bucket is in each s3 path
expect_equal(NROW(objs), 27)
})
test_that("six_bucket_upload, remote includes key prefix change", {
bucket <- random_bucket()
library(fs)
tdir <- path(path_temp(), "atmp")
demo_rds_file <- file.path(system.file(), "Meta/demo.rds")
dir_create(tdir)
purrr::map(letters, \(l) file_create(path(tdir, l)))
res <- suppressMessages(
six_bucket_upload(
path = c(demo_rds_file, tdir),
remote = path(bucket, "some", "dir"),
force = TRUE
)
)
objs <- aws_bucket_list_objects(bucket)
expect_type(res, "character")
expect_length(res, 27)
expect_match(res, bucket) # bucket is in each s3 path
expect_match(res, "some/dir") # key prefix is in each s3 path
expect_equal(NROW(objs), 27)
})
test_that("six_bucket_upload error behavior", {
expect_error(
six_bucket_upload(path = letters, remote = c("z", "z")),
"must be length 1"
)
expect_error(
six_bucket_upload(path = 5, remote = ""),
"must be character"
)
expect_error(
six_bucket_upload(path = "", remote = 5),
"must be character"
)
expect_error(
six_bucket_upload(path = "", remote = ""),
"don't exist"
)
expect_error(
six_bucket_upload(path = "", remote = ""),
"don't exist"
)
})
# cleanup
buckets_empty()
Sys.unsetenv("AWS_PROFILE")
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.