我们已经通过了身份验证,现在有了下面的代码片段
googleCloudStorageR::gcs_save(
iris,
file = 'bucket-folder/iris.rda',
bucket = 'our-gcs-bucket'
)
googleCloudStorageR::gcs_load(
file = 'bucket-folder/iris.rda',
bucket = 'our-gcs-bucket'
)在这里,gcs_save()可以很好地保存GCS中的RDA,但是gcs_load()不能工作。我们收到错误:
Error in curl::curl_fetch_disk(url, x$path, handle = handle): Failed to open file C:\Users\myname\path-to-file\iris.rda.
Request failed [ERROR]. Retrying in 1 seconds...
Error in curl::curl_fetch_disk(url, x$path, handle = handle): Failed to open file C:\Users\myname\path-to-file\iris.rda.
Request failed [ERROR]. Retrying in 1.3 seconds...
Error in curl::curl_fetch_disk(url, x$path, handle = handle) :
Failed to open file C:\Users\myname\path-to-file\iris.rda.
Error: Request failed before finding status code: Failed to open file C:\Users\myname\path-to-file\iris.rda.```我不明白为什么gcs_load()似乎试图在本地打开文件,而不是从GCS桶中抓取它。我们在这里使用gcs_load()函数有问题吗?我们如何从GCS中检索我们保存的RDA?
编辑:也许也很有用,值得注意,但是GCS中保存的iris.rda被列为按照GCS使用Type /平原保存的。这里的类型不应该是类似于RDA或RData,而不是文本/纯文本吗?
发布于 2022-05-18 09:36:34
很抱歉当时错过了这个。这是因为您使用GCS只是将其视为文件名/的文件夹名保存对象,然后当您再次下载它时,它尝试将其放入该文件夹结构中,但该文件夹不存在。
要修复,可以使用dir.create()在本地创建文件夹
googleCloudStorageR::gcs_save(
iris,
file = 'bucket-folder/iris.rda',
bucket = 'our-gcs-bucket'
)
dir.create("bucket-folder")
googleCloudStorageR::gcs_load(
file = 'bucket-folder/iris.rda',
bucket = 'our-gcs-bucket'
)
✓ Saved bucket-folder/iris.rda to bucket-folder/iris.rda ( 1.1 Kb )
[1] TRUE或者,可以使用参数saveToDisk指定文件位置在现有文件夹位置(例如,没有文件夹名)
googleCloudStorageR::gcs_load(
file = 'bucket-folder/iris.rda',
saveToDisk = "iris.rda",
bucket = 'our-gcs-bucket'
)
✓ Saved bucket-folder/iris.rda to iris.rda ( 1.1 Kb )
[1] TRUEhttps://stackoverflow.com/questions/68087081
复制相似问题