You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用R将数据推送至Couchdrop SFTP服务?

R语言向Couchdrop SFTP上传数据解决方案

报错原因说明

Error in file(what, "rb") : invalid 'description' argument报错的核心原因是:RCurl::ftpUpload的what参数要求传入本地磁盘文件的路径字符串,你直接传入了内存中的数据框对象test_df,函数无法直接读取内存对象作为上传源,需要先将数据导出为本地文件再执行上传。

完整可运行代码

# 加载依赖包
library(RCurl)

# 1. 将内存数据框导出为本地临时文件(也可替换为你自定义的固定路径)
local_temp_file <- tempfile(fileext = ".csv")
write.csv(test_df, local_temp_file, row.names = F)

# 2. 拼接Couchdrop目标路径(to参数格式)
# 格式规则:sftp://[用户名]:[密码]@sftp.couchdrop.io/[目标路径/文件名]
user <- "testadmin"
pwd <- "adminpwd"
# 自定义保存在Couchdrop上的文件名,含子目录可直接拼接路径
couchdrop_save_path <- "business_data/202407_test_df.csv"

target_url <- paste0("sftp://", user, ":", URLencode(pwd), "@sftp.couchdrop.io/", couchdrop_save_path)

# 3. 执行上传
ftpUpload(
  what = local_temp_file,
  to = target_url,
  .opts = list(ftp.use.epsv = FALSE, ssl.verifypeer = FALSE) # 可选,兼容部分网络环境的连接问题
)

# 可选:上传完成后删除本地临时文件
unlink(local_temp_file)

补充注意事项

  • 若密码包含@/://等特殊字符,必须使用URLencode()处理密码字符串,避免路径解析错误
  • 要上传到Couchdrop的指定子目录,直接在sftp.couchdrop.io/后拼接对应目录路径即可,无需提前手动创建目录(Couchdrop支持自动生成)
  • 如果需要定期执行上传逻辑,把上述代码封装为函数,配合cronR(Linux)或taskscheduleR(Windows)设置定时任务即可

内容的提问来源于stack exchange,提问作者Rijul

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 21:00:03