使用R删除S3中的文件夹
我想删除一个文件夹中的所有文件 我试过了使用R删除S3中的文件夹,r,amazon-web-services,amazon-s3,R,Amazon Web Services,Amazon S3,我想删除一个文件夹中的所有文件 我试过了 library(aws.s3) delete_object(object = "folder_to_delete", bucket = "bucket_name/folder/sub_folder/") delete_object(object = "bucket_name/folder/sub_folder/folder_to_delete") R返回 [1] TRUE 但最后,没有删除任何内容。 如果没有人知道如何做到这一点,也许有人知道如何列出
library(aws.s3)
delete_object(object = "folder_to_delete", bucket = "bucket_name/folder/sub_folder/")
delete_object(object = "bucket_name/folder/sub_folder/folder_to_delete")
R返回
[1] TRUE
但最后,没有删除任何内容。
如果没有人知道如何做到这一点,也许有人知道如何列出存储在特定文件夹中的所有文件名(aws.s3
library提供了列出所有存储桶名称的唯一功能,而不是文件名)
更确切地说,我不知道文件夹中要删除的文件的具体名称
它们只有共同的开头部分——“报告”。它的意思是在文件夹内“要删除的文件夹”
我们有如下文件:
report_1234
report_87688
report_uyrtt
这对我来说很有用,还有一个额外的好处,就是tidyverse的所有功能都可以选择您需要的文件。。。或者不要
library(aws.s3)
library(tidyverse)
# Bucket contents in dataframe
bucket <-
get_bucket_df("bucket_name",
prefix = "folder/subfolder/folder_with_contents_to_delete/")
# List of files to delete
files_to_delete <-
bucket %>%
# Filter based on deletion criteria
# Keeping files modified after 01 April 2020
filter(LastModified >= "2020-04-01") %>%
# Keep file names
select(Key) %>%
pull()
# Loop through file list
for(file in files_to_delete){
delete_object(file,
"bucket_name",
prefix = "folder/subfolder/folder_with_contents_to_delete/")
}
这对我来说很有用,还有一个额外的好处,就是tidyverse的所有功能都可以选择您需要的文件。。。或者不要
library(aws.s3)
library(tidyverse)
# Bucket contents in dataframe
bucket <-
get_bucket_df("bucket_name",
prefix = "folder/subfolder/folder_with_contents_to_delete/")
# List of files to delete
files_to_delete <-
bucket %>%
# Filter based on deletion criteria
# Keeping files modified after 01 April 2020
filter(LastModified >= "2020-04-01") %>%
# Keep file names
select(Key) %>%
pull()
# Loop through file list
for(file in files_to_delete){
delete_object(file,
"bucket_name",
prefix = "folder/subfolder/folder_with_contents_to_delete/")
}
你有没有试过
取消链接
?但是取消链接
只在个人环境中有效,对吗?我想你是对的。我从未在本地以外的地方尝试过。我不熟悉aws.s3,所以这可能对您不起作用。您是否尝试列出文件夹中的文件,然后将其传递给delete\u object()
?例如列出\u文件好的,我在函数中找到了参数“prefix”,所有\u文件都尝试了取消链接
?但是取消链接
只在个人环境中有效,对吗?我想你是对的。我从未在本地以外的地方尝试过。我不熟悉aws.s3,所以这可能对您不起作用。您是否尝试列出文件夹中的文件,然后将其传递给delete\u object()
?例如,list\u文件好的,我在函数all\u文件中找到了参数“prefix”