none
win server 2008 oem版式ftp get 命令传输大容量文件时,文件名会被改名. RRS feed

  • 问题

  • windows server 2008戴尔OEM版操作系统,在使用ftp 的get命令传输大容量文件时,传输至本地文件名未做设定,本地文件名会被换成另一文件名如:Tmp711.tmp,文件类型为tmp.

    • 已编辑 汾雁 2013年6月5日 2:35
    2013年6月5日 2:22

答案

  • 试验了一下,这个问题应该跟文件大小也无关。

    只要用 ftp.exe 去下载文件,它都会先创建一个临时文件,下载完后,再把临时文件名改掉,改为原始文件名。

    这篇KB恰好提到了这个机制

    Downloaded files do not inherit the permissions from the parent folder when you use the Ftp.exe program to download files in Windows Vista, in Windows Server 2008, in Windows 7 or in Windows Server 2008 R2
    http://support.microsoft.com/kb/973510

    When you use the Ftp.exe program to download a file, the program first creates a temporary file in the %Temp% folder. After the file is downloaded successfully, the Ftp.exe program moves the file to the destination folder. If the %Temp% folder and the destination folder reside on the same partition, moving the file does not change the file permissions of the downloaded file. Therefore, the downloaded file in the destination folder inherits the file permissions of the %Temp% folder instead of the file permissions of the parent folder.

    当然,这篇KB的初衷不是为了说明你的这个问题,而是提供了一个Hotfix,把原先临时文件下载到%temp%目录的行为,改成下载到当前目录,避开NTFS权限继承问题。

    也就是说2009年7月17日前的ftp.exe,会在%temp%下创建临时文件,而2009年7月17日后的ftp.exe,就是在当前目录下创建了。

    无论如何,它总是创建临时文件名的,这应该是 ftp.exe 程序代码的行为,跟操作系统本身无关。


    Technical problem is never a problem.

    2013年6月5日 6:51

全部回复

  • Get多大的文件可以重现这个问题?

    文件传输完毕后文件名会改正回去吗?

    确认跟你的FTP Server无关吗?

    是否有抓包看过Get的一刹那FTP协议原语里写了怎样的文件名?


    Technical problem is never a problem.

    2013年6月5日 2:55
  •       get 的文件的大小为1.5G,确认与FTP server无关,用put不会发生这种现象。文件传输完毕后文件名会改正回去。非常谢谢给我的回复。
    2013年6月5日 6:19
  • 试验了一下,这个问题应该跟文件大小也无关。

    只要用 ftp.exe 去下载文件,它都会先创建一个临时文件,下载完后,再把临时文件名改掉,改为原始文件名。

    这篇KB恰好提到了这个机制

    Downloaded files do not inherit the permissions from the parent folder when you use the Ftp.exe program to download files in Windows Vista, in Windows Server 2008, in Windows 7 or in Windows Server 2008 R2
    http://support.microsoft.com/kb/973510

    When you use the Ftp.exe program to download a file, the program first creates a temporary file in the %Temp% folder. After the file is downloaded successfully, the Ftp.exe program moves the file to the destination folder. If the %Temp% folder and the destination folder reside on the same partition, moving the file does not change the file permissions of the downloaded file. Therefore, the downloaded file in the destination folder inherits the file permissions of the %Temp% folder instead of the file permissions of the parent folder.

    当然,这篇KB的初衷不是为了说明你的这个问题,而是提供了一个Hotfix,把原先临时文件下载到%temp%目录的行为,改成下载到当前目录,避开NTFS权限继承问题。

    也就是说2009年7月17日前的ftp.exe,会在%temp%下创建临时文件,而2009年7月17日后的ftp.exe,就是在当前目录下创建了。

    无论如何,它总是创建临时文件名的,这应该是 ftp.exe 程序代码的行为,跟操作系统本身无关。


    Technical problem is never a problem.

    2013年6月5日 6:51