CurlFtpFSでマウントしたファイルシステムにCopy-Itemできない

CurlFtpFsを使い、FTPサーバをファイルシステムとしてマウントしたところに
LinuxのPowerShellでCopy-Itemをしようとすると例外が発生した。

発生した例外

Copy-Item : Operation not supported
At line:1 char:1
+ copy-item -Path ./somefile.txt -Destination /path/to/curlftpfs_mnt/somedir/ ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Copy-Item], IOException
    + FullyQualifiedErrorId : System.IO.IOException,Microsoft.PowerShell.Co
   mmands.CopyItemCommand

ちなみに、Linuxのcpコマンドは問題なくできる。

回避策

curlftpfsのオプションを見てもすぐには解決できそうではなかった。
仕方なく、Copy-Itemで例外が発生したらcpコマンドでリトライするようにした。

$hasError = $false;
$err = $null;

$hasErrorFinally = $false;
$errFinal = $null;

try {
    Copy-Item -Force -Path $pathSource -Destination $pathDestination -ErrorAction Ignore -Verbose | Out-Null;
}
catch {
    $err = $_;
    $hasError = $true;
}

if($hasError) {
    $cmdNativeCopy = "cp {0} {1}" -F $pathSource, $pathDestination;
    try {
        Invoke-Expression -Command $cmdNativeCopy;
    }
    catch {
        $errFinal = $_;
        $hasErrorFinally = $true;
    }
}

ただ、いろいろbugfixを見ているとオプションを駆使すれば解決できなくはなさそうな気がするが、それはまた別の機会とする。
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=499153

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です