是否可以在python中使用一行命令来执行简单的ftp服务器?我希望能够以快速和临时的方式将文件传输到Linux机器而无需安装ftp服务器.最好是使用内置python库的方式,这样就没有什么额外的安装了.
我正在尝试编写一个代码,在我的独立服务器上打开一个FTP服务器,所以我可以将文件从它复制到另一台计算机的客户端,相反,但我对服务器端编程很新,不明白如何.
我得到了Apache FtpServer,但对它的使用有点困惑,我正在寻找如何使用它的基本步骤.也许是这样的:
我正在尝试创建一个ftp服务器(使用windows/linux/mac - 无关紧要),它将其存储作为Amazon S3存储.现在请注意,S3本身不支持FTP,所以这需要某种黑客作为解决方案.
我研究了这个主题并找到了各种解决方案,但我不相信其中任何一个.他们是:
我试图在安全性和灵活性/平滑性方面找到最佳解决方案.您认为哪种解决方案最好,如何实现上述目标?
编辑1:
我对以下解决方案非常感兴趣.这是我收集的内容:您可以将EBS卷附加到EC2实例并在该实例上运行FTP服务器.将FTP服务器指向附加的EBS卷,然后只需FTP文件 - 它将直接写入EBS卷.您可能希望使用可支持恢复中断传输的FTP服务器和客户端 - 例如,FileZilla.当我假设以上所有内容时,我是否正确?
谁也可以给出一步一步的程序如何实现这一目标?
我正在编写FTP客户端,至少应该适用于Windows和Linux FTP.在我继续之前,我想回答这些问题.
ls -lt
命令用于Linux上的FTP服务器时,列出了哪些文件?ls -lt
命令用于Windows上的FTP服务器时,列出了哪些文件?注意:我尝试在Windows和Linux FTP服务器上执行命令,但我无法找出任何特定的逻辑/格式.
我不知道为什么它无法打开配置文件.
$ ll /etc/vsftpd/vsftpd.conf
-rw-r--r-- 1 xuehui1 root 4182 Aug 20 2012 /etc/vsftpd/vsftpd.conf //exits
$ sudo /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
500 OOPS: cannot open config file:/etc/vsftpd/vsftpd.conf
Run Code Online (Sandbox Code Playgroud)
这是vsftpd.conf,它适用于其他Linux机器(centos),但这一个?任何帮助将不胜感激..
# Example config file /etc/vsftpd/vsftpd.conf
# Allow anonymous FTP? (Beware - allowed by default if you comment this out).
anonymous_enable=NO
#
# Uncomment this to allow local users to log in.
local_enable=YES
#
# Uncomment this to enable any form of FTP write command.
write_enable=YES
#
# Default umask for local users is 077. You …
Run Code Online (Sandbox Code Playgroud) 我正在写一个FTP服务器,但我不懂PASV命令,任何服务器都发送这样的响应:
227 Entering Passive Mode (213,229,112,130,216,4)
Run Code Online (Sandbox Code Playgroud)
括号中的数字是什么意思?那是正常模式和被动模式之间的区别?
我正在使用Delphi XE 6和Indy10开发FTP服务器.问题是我需要限制下载速度(必须是可配置的Ex.1 KB/s,1 MB/s等)并且我不能使它工作.我知道像BitsPerSec等道具,但这只会影响协议数据交换,而不会影响与RETR命令的文件交换.我在IdFTPServer.pass中看到,并且Stream被转换为字符串并使用repeat/until循环发送(使用IOHandler.Write())但我需要某种形式的控制上传/下载过程并且能够限制速度所有传入客户端连接.请帮忙实现这一目标吗?
PD:抱歉我的英语不好.
我尝试使用以下代码为RETR命令实现CommandHandler:
procedure TForm1.IdFTPServer1CommandHandlers0Command(ASender: TIdCommand);
var
LContext : TIdFTPServerContext;
vStream: TFileStream;
path: String;
vX: Integer;
LEncoding: IIdTextEncoding;
begin
LEncoding := IndyTextEncoding_8Bit;
LContext := ASender.Context as TIdFTPServerContext;
path := 'D:\indy_in_depth.pdf';
try
vStream := TFileStream.Create(path, fmOpenRead);
//LContext.DataChannel.FtpOperation := ftpRetr;
//LContext.DataChannel.Data := VStream;
LContext.DataChannel.OKReply.SetReply(226, RSFTPDataConnClosed);
LContext.DataChannel.ErrorReply.SetReply(426, RSFTPDataConnClosedAbnormally);
ASender.Reply.SetReply(150, RSFTPDataConnToOpen);
ASender.SendReply;
Memo1.Lines.Add('Sending a file with: ' + IntToStr(vStream.Size) + ' bytes');
//Make control of speed here !
for vX := 1 to vStream.Size do
begin
vStream.Position := vX;
LContext.Connection.IOHandler.Write(vStream, …
Run Code Online (Sandbox Code Playgroud) 当我使用 mac 端口安装 vsftpd 时遇到问题,当我想启动 vsftp 服务时
sudo /opt/local/sbin/vsftpd
我有这样的错误
500 OOPS: vsftpd: not configured for standalone, must be started from inetd
。
任何人都可以建议我我该怎么做?
这是我的 vsftpd.config
# Example config file /opt/local/etc/vsftpd.conf
#
# The default compiled in settings are fairly paranoid. This sample file
# loosens things up a bit, to make the ftp daemon more usable.
# Please see vsftpd.conf.5 for all compiled in defaults.
#
# READ THIS: This example file is NOT an exhaustive list of vsftpd …
Run Code Online (Sandbox Code Playgroud) 我正在尝试编写一个FTP客户端和服务器,它允许我通过匿名FTP将文件从客户端发送到服务器.但是,我一直在努力550 Permission Denied
.我可以做其他事情,比如从服务器下载文件,或者获取目录中的文件列表,但每当我尝试下载时,它都会说550 Permission Denied
.无论我是登录还是使用匿名FTP,结果都是一样的.
我没有看到我的代码有任何问题,但我尝试在不同的网络和计算机上运行它具有相同的结果.我看不到代码有问题,还是我必须对路由器/防火墙做些什么?
我用Java编写客户端和服务器并运行Windows.我正在使用的库是Apache Commons FTP Client
和Apache FTP Server
.
这是客户.注释掉的代码用于上载和获取目录中的文件列表.
import org.apache.commons.net.ftp.*;
import java.io.*;
import java.net.*;
public class Client
{
public Client()
{
// Do nothing
}
public void transferFile(String ipAddress)
{
// For uploading
FileInputStream file = null;
// For downloading
// FileOutputStream file = null;
try
{
InetAddress address = InetAddress.getByName(ipAddress);
FTPClient ftpClient = new FTPClient();
ftpClient.connect(address, 5000);
ftpClient.login("anonymous", "");
ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
ftpClient.enterLocalPassiveMode();
// For uploading
file = …
Run Code Online (Sandbox Code Playgroud) 我的应用程序是将文件从SD卡上传到FileZilla FTP Server上的目录.运行我的appliaction后,它给了我一些异常,我在搜索后无法解决这个问题.
这是log cat输出:
06-24 11:06:53.715: W/System.err(1304): java.io.IOException: SimpleFTP received an unknown response when connecting to the FTP server: 220-FileZilla Server version 0.9.41 beta
06-24 11:06:54.055: W/System.err(1304): at org.jibble.simpleftp.SimpleFTP.connect(SimpleFTP.java:74)
06-24 11:06:54.087: W/System.err(1304): at com.example.upload1.MainActivity$UploadVideo.doInBackground(MainActivity.java:63)
06-24 11:06:54.167: W/System.err(1304): at com.example.upload1.MainActivity$UploadVideo.doInBackground(MainActivity.java:1)
06-24 11:06:54.167: W/System.err(1304): at android.os.AsyncTask$2.call(AsyncTask.java:287)
06-24 11:06:54.167: W/System.err(1304): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
06-24 11:06:54.167: W/System.err(1304): at java.util.concurrent.FutureTask.run(FutureTask.java:137)
06-24 11:06:54.167: W/System.err(1304): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
06-24 11:06:54.167: W/System.err(1304): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
06-24 11:06:54.403: W/System.err(1304): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
06-24 11:06:54.403: W/System.err(1304): at java.lang.Thread.run(Thread.java:856)
Run Code Online (Sandbox Code Playgroud)
这是我的MainActivity.java代码
import java.io.File;
import org.jibble.simpleftp.SimpleFTP; …
Run Code Online (Sandbox Code Playgroud)