我需要从加拿大政府的公共地理数据库在我的电脑(Windows 操作系统)上的文件夹“C:\DEMDownload”中下载几个(数字地球模型)zip 文件。
当我在该行运行代码时,ftp.retrbinary('RETR %s' %file, open(local_file, 'wb').write)我收到以下错误消息
Traceback (most recent call last):
File "<input>", line 1, in <module>
File "C:\Python27\lib\ftplib.py", line 414, in retrbinary
conn = self.transfercmd(cmd, rest)
File "C:\Python27\lib\ftplib.py", line 376, in transfercmd
return self.ntransfercmd(cmd, rest)[0]
File "C:\Python27\lib\ftplib.py", line 339, in ntransfercmd
resp = self.sendcmd(cmd)
File "C:\Python27\lib\ftplib.py", line 249, in sendcmd
return self.getresp()
File "C:\Python27\lib\ftplib.py", line 224, in getresp
raise error_perm, resp
error_perm: 550 Failed to open file.
Run Code Online (Sandbox Code Playgroud)
第二。是否可以避免编写 available_days 列表并创建所有要下载的 zip 文件的列表
import …Run Code Online (Sandbox Code Playgroud) 情况
我有一些将文件(在本例中通常为 .csv)上传到远程 FTP 站点的代码
代码
try
{
/* Create an FTP Request */
ftpRequest = (FtpWebRequest)FtpWebRequest.Create(host + "/" + remoteFile);
/* Log in to the FTP Server with the User Name and Password Provided */
ftpRequest.Credentials = new NetworkCredential(user, pass);
/* When in doubt, use these options */
ftpRequest.UseBinary = false;
ftpRequest.UsePassive = false;
ftpRequest.KeepAlive = true;
/* Specify the Type of FTP Request */
ftpRequest.Method = WebRequestMethods.Ftp.UploadFile;
/* Establish Return Communication with the FTP Server */
ftpStream = …Run Code Online (Sandbox Code Playgroud) 我有一个带有多个 PHP 网站的 Web 服务器。我通过 FTP 推送所有更新。
我打算迁移到更加容器化的环境,而不改变我当前的大部分基本工作流程。
我想将我的每个网站部署在 Docker 容器中。所有网站的数据库将位于另一个容器中。我将使用 Docker 作为反向代理。
为了更新我的网站,我有两个想法:
你怎么看呢 ?
感谢您的帮助
我已经制作了一个 IdFTP 从我的 FTP 服务器下载文件,但是当我尝试将其设为线程时,它卡在 Android 操作系统中的“正在解析主机名...”中。
没有线程(工作正常):
uses ..., IdFTPCommon;
var
RecordDownload: TMemoryStream;
uses System.IOUtils;
procedure TForm1.Button1Click(Sender: TObject);
begin
IdFTP1.Host := 'motoristaajudante.ddns.net';
IdFTP1.Port := 2121;
IdFTP1.DataPortMin := 50100;
IdFTP1.DataPortMax := 51100;
IdFTP1.Username := 'anonymous';
IdFTP1.TransferType := IdFTPCommon.TIdFTPTransferType.ftBinary;
IdFTP1.Passive := True;
try
IdFTP1.Connect();
IdFTP1.Get('00001.m4a',TPath.GetDocumentsPath + PathDelim + '00001.m4a',True,False);
except
IdFTP1.Disconnect;
end;
end;
procedure TForm1.IdFTP1AfterGet(ASender: TObject; AStream: TStream);
begin
IdFTP1.Disconnect;
end;
procedure TForm1.IdFTP1WorkEnd(ASender: TObject; AWorkMode: TWorkMode);
begin
if FileExists(TPath.GetDocumentsPath + PathDelim + '00001.m4a') then
begin
ShowMessage('Downloaded!');
end;
end;
Run Code Online (Sandbox Code Playgroud)
我按照这个解决方案编写的线程代码:
uses …Run Code Online (Sandbox Code Playgroud) 大家早上好,
我有一个任务,需要自动化一个流程,从 FTP 站点下载文件,用 SQL 处理文件,然后将 FTP 站点上的文件移动到同一 FTP 站点上的另一个文件夹。
前两部分我已经完成,但将 FTP 上的文件移动到同一 FTP 上的另一个文件夹的部分让我感到困惑。
有人可以提供一些建议吗?
这就是我目前拥有的:
@Echo Off
Set _FTPServerName=SERVER HERE
Set _UserName=LOGIN HERE
Set _Password=PASSWORD HERE
Set _RemoteFolder=FILES FROM
Set _NewRemoteFolder=FILES TO
Set _Filename=*.*
Set _ScriptFile=ftp1
:: Create script
"%_ScriptFile%" Echo open %_FTPServerName%
"%_ScriptFile%" Echo %_UserName%
"%_ScriptFile%" Echo %_Password%
"%_ScriptFile%" Echo cd %_RemoteFolder%
"%_ScriptFile%" prompt
:: Run script
ftp -s:"%_ScriptFile%"
Del "%_ScriptFile%"
Run Code Online (Sandbox Code Playgroud)
如果您还有其他问题,请告诉我!
我正在写入我要通过 FTP 访问的用户的主目录,因此权限应该不是问题。FTP 在 FileZilla 中运行。
我检查了 vsftp.conf 并进行了local_enable=YES更改
在带有 Python 2.4.4 的Debian4系统上(我无法升级它),我将此代码与 ftplib 一起使用
>>> f = ftplib.FTP('address', 'user', 'password')
>>> f.cwd('/home/user/some/dir/')
'250 Directory successfully changed.'
>>> myfile = '/full/path/of/file.txt'
>>> o = open(myfile, 'rb')
>>> f.storbinary('STOR ' + myfile, o)
Traceback (most recent call last):
File "<stdin>", line 1, in ?
File "/usr/lib/python2.4/ftplib.py", line 415, in storbinary
conn = self.transfercmd(cmd)
File "/usr/lib/python2.4/ftplib.py", line 345, in transfercmd
return self.ntransfercmd(cmd, rest)[0]
File "/usr/lib/python2.4/ftplib.py", line 327, in …Run Code Online (Sandbox Code Playgroud) 我有以下问题:
我需要连接到 FTP 并读取一个 CSV 文件。主要问题是它的密码有@、$、%...我如何连接特殊字符?我尝试了以下几种连接方式:
文件打开
$filename = 'ftp://user:p@s($word@ftp.myftp.url/file.csv';
$handle = fopen($filename, "r") or die("Error");
Run Code Online (Sandbox Code Playgroud)
FTP登录
$ftp_server = "ftp.myftp.url/file.csv";
$ftp_user = "user";
$ftp_pass = "p@s($word";
$conn_id = ftp_connect($ftp_server) or die("Could not connect to $ftp_server");
$login_result = ftp_login($ftp_server, $ftp_user, $ftp_pass) or die("Could not connect to 2");
$data = file_get_contents('ftp.myftp.url/file.csv');
Run Code Online (Sandbox Code Playgroud)
感谢大家!
我正在开发 Azure 逻辑应用程序的 FTP 连接器,如果我上传具有今天最后修改日期的文件,它工作正常。但对于当前日期之前修改的文件,不会触发 FTP 连接器。我在触发历史记录中发现触发被跳过并且返回状态代码 202 。请建议我一个解决方案,以便每当在 FTP 上添加任何文件(即使是一年前修改过)时都会触发 FTP 连接器。
我搜索了如何使用 Python 通过 ftp 上传 csv 文件。我尝试了这段代码:
from ftplib import FTP
ftp = FTP("host")
ftp.login("user","password")
Output_Directory = "//ftp//data//"
File2Send="C://Test//test.csv"
file = open(File2Send, "rb")
ftp.cwd(Output_Directory)
ftp.storbinary('STOR ' + File2Send, file)
Run Code Online (Sandbox Code Playgroud)
这就是我得到的错误。我想我无法正确编写 ftp.storbinary 函数。谁能告诉我如何使其正确吗?
谢谢
我希望使用 AzureDevOps 作为我的 CI/CD 工具来启用我的项目 (asp.net api) CI/CD。
我希望通过 FTP 将我发布的文件上传到我的托管提供商。
目前,当通过 Azure DevOps 构建产品时,它会将应用程序创建为 Msdeploy 文件。我的托管提供商不支持通过 ftp
建造
正如您所看到的构建工件,其格式为 Web 部署
上传文件后,服务器不知道如何部署 msdeploy 项目文件。 如何使用 AzureDevOps 部署网站
我想将文件作为 ftp 支持的常规文件上传,或者我想以自动方式执行 msdeploy