Nothing
library(data.table)
bucket_nv = Sys.getenv("AWS_S3_BUCKET_NOT_VERSIONED")
bucket_v = Sys.getenv("AWS_S3_BUCKET_VERSIONED")
test_that("create file in a non version bucket", {
skip_if_no_env()
s3_file_system(refresh = T)
path = s3_file_temp(tmp_dir = bucket_nv)
s3_file_create(path)
result = s3_file_exists(path)
s3_file_delete(path)
expect_true(result)
})
test_that("create file in a version bucket", {
skip_if_no_env()
s3_file_system(refresh = T)
path = s3_file_temp(tmp_dir = bucket_v)
s3_file_create(path)
result = s3_file_exists(path)
s3_file_delete(path)
expect_true(result)
})
################################################################################
# Copy: Standard
################################################################################
test_that("copy file uri to uri standard", {
skip_if_no_env()
s3_file_system(refresh = T)
path = s3_file_temp(tmp_dir = bucket_nv)
s3_file_create(path)
new_path = s3_file_copy(path, s3_path(bucket_nv, "file1.txt"))
result = s3_file_exists(new_path)
s3_file_delete(c(path, new_path))
expect_true(result)
})
test_that("copy file local to uri standard", {
skip_if_no_env()
s3_file_system(refresh = T)
path = fs::file_temp()
fs::file_create(path)
new_path = s3_file_copy(path, s3_path(bucket_nv, "file1.txt"))
result = s3_file_exists(new_path)
s3_file_delete(new_path)
fs::file_delete(path)
expect_true(result)
})
test_that("copy file uri to local standard", {
skip_if_no_env()
s3_file_system(refresh = T)
path = s3_file_temp(tmp_dir = bucket_nv)
new_path = fs::file_temp()
s3_file_create(path)
s3_file_copy(path, new_path)
result = fs::file_exists(new_path)
s3_file_delete(path)
fs::file_delete(new_path)
expect_true(result)
})
################################################################################
# Copr: Multipart
################################################################################
test_that("copy file uri to uri multipart", {
skip_if_no_env()
s3_file_system(multipart_threshold = fs_bytes("50MB"), refresh = T)
new_path = s3_file_temp(tmp_dir = bucket_nv)
path = s3_path(bucket_nv, "multipart_file.csv")
s3_file_copy(
path,
new_path,
max_batch = fs_bytes("20MB")
)
result = s3_file_exists(new_path)
size = s3_file_size(c(path, new_path))
s3_file_delete(new_path)
expect_true(result)
expect_equal(size[1], size[2])
})
test_that("copy file local to uri multipart", {
skip_if_no_env()
s3_file_system(multipart_threshold = fs_bytes("2MB"), refresh = T)
path = "temp.csv"
new_path = s3_file_temp(tmp_dir = bucket_nv, ext = "csv")
size = 1e6
df = data.frame(
var1 = sample(LETTERS, size, TRUE),
var3 = 1:size
)
fwrite(df, path)
s3_file_copy(
path,
new_path,
max_batch = fs_bytes("6MB"),
overwrite = T
)
result = s3_file_exists(new_path)
expect_true(result)
expect_equal(unname(fs::file_size(path)), s3_file_size(new_path))
s3_file_delete(new_path)
fs::file_delete(path)
})
################################################################################
# Move
################################################################################
test_that("move file", {
skip_if_no_env()
s3_file_system(refresh = T)
path = s3_file_temp(tmp_dir = bucket_nv)
new_path = s3_file_temp(tmp_dir = bucket_nv)
s3_file_create(path)
s3_file_move(path, new_path)
found = s3_file_exists(c(path, new_path))
s3_file_delete(new_path)
expect_false(found[1])
expect_true(found[2])
})
################################################################################
# tag
################################################################################
test_that("get file tags", {
skip_if_no_env()
s3_file_system(refresh = T)
path = s3_file_temp(tmp_dir = bucket_nv)
s3_file_create(path)
tag_info = s3_file_tag_info(path)
s3_file_delete(path)
expect_false(nzchar(tag_info$tag_key))
expect_false(nzchar(tag_info$tag_value))
})
test_that("overwrite file tags", {
skip_if_no_env()
s3_file_system(refresh = T)
path = s3_file_temp(tmp_dir = bucket_nv)
s3_file_create(path)
s3_file_tag_update(path, list("tag1" = "value1"), overwrite = T)
tag_info = s3_file_tag_info(path)
s3_file_delete(path)
expect_equal(tag_info$tag_key, "tag1")
expect_equal(tag_info$tag_value, "value1")
})
test_that("modify existing file tags", {
skip_if_no_env()
s3_file_system(refresh = T)
path = s3_file_temp(tmp_dir = bucket_nv)
s3_file_create(path)
s3_file_tag_update(path, list("tag1" = "value1"))
s3_file_tag_update(path, list("tag2" = "value2"))
tag_info = s3_file_tag_info(path)
s3_file_delete(path)
expect_equal(tag_info$tag_key, c("tag1", "tag2"))
expect_equal(tag_info$tag_value, c("value1", "value2"))
})
test_that("delete existing file tags", {
skip_if_no_env()
s3_file_system(refresh = T)
path = s3_file_temp(tmp_dir = bucket_nv)
s3_file_create(path)
s3_file_tag_update(path, list("tag1" = "value1"))
s3_file_tag_delete(path)
tag_info = s3_file_tag_info(path)
s3_file_delete(path)
expect_false(nzchar(tag_info$tag_key))
expect_false(nzchar(tag_info$tag_value))
})
################################################################################
# Stream: Standard
################################################################################
test_that("stream files in and out standard", {
skip_if_no_env()
s3_file_system(refresh = T)
obj = list(charToRaw("contents1"), charToRaw("contents2"))
dir = s3_file_temp(tmp_dir = bucket_nv)
path = s3_path(dir, letters[1:2], ext = "txt")
s3_file_stream_out(obj, path)
result = lapply(s3_file_stream_in(path), rawToChar)
s3_file_delete(path)
expect_equal(result, list("contents1", "contents2"))
})
################################################################################
# Stream: multipart
################################################################################
test_that("stream files in and out multipart", {
skip_if_no_env()
s3_file_system(multipart_threshold = fs_bytes("2MB"), refresh = T)
path = "temp.csv"
new_path = s3_file_temp(tmp_dir = bucket_nv, ext = "csv")
size = 1e6
df = data.frame(
var1 = sample(LETTERS, size, TRUE),
var3 = 1:size
)
fwrite(df, path)
obj = readBin(path, "raw", n = file.size(path))
s3_file_stream_out(obj, new_path, max_batch = fs_bytes("6MB"), overwrite = T)
result = s3_file_stream_in(new_path)
s3_file_delete(new_path)
fs::file_delete(path)
expect_equal(obj, result[[1]])
})
################################################################################
# Touch
################################################################################
test_that("touch file", {
skip_if_no_env()
s3_file_system(refresh = T)
path = s3_file_temp(tmp_dir = bucket_nv)
s3_file_create(path)
time_stamp_1 = s3_file_info(path)$last_modified
# wait 1 second
Sys.sleep(1)
s3_file_touch(path)
time_stamp_2 = s3_file_info(path)$last_modified
s3_file_delete(path)
expect_true(time_stamp_1 < time_stamp_2)
})
################################################################################
# Version
################################################################################
test_that("version id file", {
skip_if_no_env()
s3_file_system(refresh = T)
obj1 = charToRaw("contents1")
obj2 = charToRaw("contents2")
path = s3_file_temp(tmp_dir = bucket_v)
s3_file_stream_out(obj1, path)
s3_file_stream_out(obj2, path, overwrite = T)
versions = s3_file_version_info(path)
result1 = rawToChar(s3_file_stream_in(versions$uri[[2]])[[1]])
result2 = rawToChar(s3_file_stream_in(versions$uri[[1]])[[1]])
s3_file_delete(path)
expect_equal(result1, "contents1")
expect_equal(result2, "contents2")
})
################################################################################
# Url
################################################################################
test_that("file url", {
skip_if_no_env()
url = s3_file_url("s3://madeup/dummy.txt")
expect_true(
grepl(
"https://madeup.s3.*amazonaws.com/dummy.txt\\?AWSAccessKeyId=.*&Expires=.*&Signature=.*",
url
)
)
})
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.