我编写了一个Shiny应用程序,其本质上是针对存储在S3上的数据的前端。当应用程序运行时,有很多读写数据到S3存储桶中,并且在大多数情况下都可以正常工作。但是,有时会发生读取或写入操作超时,从而导致应用程序中断的情况。
在其他情况下,我依赖使用HTTR包的API数据,我使用包的RETRY
函数,这使我可以重试指定次数的GET / POST调用,如下所示:>
RETRY("GET", "http://httpbin.org/status/500", times = 5)
# Request failed [500]. Retrying in 1 seconds...
# Request failed [500]. Retrying in 3 seconds...
# Request failed [500]. Retrying in 1 seconds...
# Request failed [500]. Retrying in 15.5 seconds...
# Response [http://httpbin.org/status/500]
# Date: 2019-04-15 19:14
# Status: 500
# Content-Type: text/html; charset=utf-8
#<EMPTY BODY>
我的问题是,我是否可以对与S3的连接做类似的事情?
我的读取操作通常看起来像这样:
object <- aws.s3::save_object(s3_file_path, bucket, file = local_file_path, overwrite = TRUE)
data <- readRDS(local_file_path)
我的写操作如下:
file_name <- "test.txt"
aws.s3::put_object(local_file_path, object = file_name, bucket)