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

使用R语言{curl}包在FTP服务器创建文件夹失败求助

使用R语言{curl}包在FTP服务器创建文件夹失败求助

我来帮你排查这个问题!你遇到的Failed initialization错误,大概率是参数拼写、请求命令格式或者URL写法的问题,咱们一步步来解决:

首先先揪出一个明显的小错误:你代码里的password写成了passowrd,拼写错误肯定会导致认证失败,先把这个修正过来!

然后说回FTP创建目录的正确姿势:

  • 标准的FTP创建目录命令是MKD,不是你试的MkDir或者ftp-create-dirs,后者不是curl支持的自定义请求命令;
  • 用户名和密码可以用userpwd参数合并设置(用冒号分隔用户名和密码),这样比分开设置更稳妥;
  • URL的写法尽量不要加末尾的斜杠,直接写ftp://my_ip_address/test就好,多余的斜杠可能会让服务器解析出问题。

给你一个修正后的完整代码示例:

library(curl)

# 创建并配置handle,修正拼写+使用标准命令
h <- curl::new_handle() |>
  curl::handle_setopt(
    customrequest = "MKD",
    userpwd = "my_username:my_password"  # 注意是正确的password拼写,冒号分隔账号密码
  )

# 发送创建目录请求
response <- curl::curl_fetch_memory(url = "ftp://my_ip_address/test", handle = h)

# 查看响应状态码判断是否成功:257表示目录创建成功,200系列一般是成功状态
cat("请求状态码:", response$status_code, "\n")

如果还是报错,可以试试这些排查技巧:

  • 加上被动模式设置:大多数现代FTP服务器需要被动模式,你可以在handle_setopt里添加ftp_use_epsv = TRUE;
  • 开启 verbose 模式:添加verbose = TRUE参数,这样能看到curl和服务器的交互细节,比如认证是否通过、命令是否正确发送,方便定位问题;
  • 检查服务器权限:确认你的FTP账号有创建目录的权限,服务器IP/端口正确,防火墙没有拦截FTP连接(默认端口是21,如果是自定义端口要在URL里加上,比如ftp://my_ip_address:2121/test)。

备注:内容来源于stack exchange,提问作者Lefkios Paikousis

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.21 09:44:39