楽天GOLDへのFTPアップロード

   2015/08/04

以前C#からのFTPアップロード処理をご紹介しました。

ただし、楽天GOLDへのFTP接続は少し特殊なので、その接続方法についてご紹介します。


まずは、FTPアップロードのコードのおさらいです。

static void FtpUpload(
            string user,
            string password,
            string ftpPath,
            string ftpFile,
            string filePath
            )
        {
            var uplaodpath = System.IO.Path.Combine(ftpPath, ftpFile);
            
            Console.WriteLine("ftp接続開始");
            FtpWebRequest req = (FtpWebRequest)WebRequest.Create(uplaodpath);
            req.UsePassive = true;
            req.Credentials = new NetworkCredential(user, password);
            req.Method = WebRequestMethods.Ftp.UploadFile;
            req.UseBinary = true;
            req.KeepAlive = false;
           

            Console.WriteLine("ファイル書き込み開始");
            //アップロード対象ファイルを開き、ftp対象ファイルへ向けてバイナリ転送する。
            Stream reqStrm = req.GetRequestStream();
            FileStream fs = new System.IO.FileStream(filePath, FileMode.Open, FileAccess.Read);
            try
            {
                
                byte[] buffer = new byte[1024];
                while (true)
                {
                    int readSize = fs.Read(buffer, 0, buffer.Length);
                    if (readSize == 0) break;
                    reqStrm.Write(buffer, 0, readSize);
                }
                
            }
            finally
            {
                fs.Close();
                reqStrm.Close();
            }
            Console.WriteLine("アップロード完了");
        }

FtpWebRequestを利用した場合、ポート番号は標準の21番になります。


しかしここで問題が…

楽天GOLDへの接続はポート番号16910番です。


FtpWebRequestクラスにはポート番号を指定するようなプロパティはなさそうです。


ではどうするかというと、

単純にサーバURLにポート番号を付与してあげるだけです。

楽天GOLDのサーバURLは

ftp://ftp.rakuten.ne.jp/

ですので

ftp://ftp.rakuten.ne.jp:16910/



上記のコードだと、



ftpPath="ftp://ftp.rakuten.ne.jp:16910/";



これでOKです。


これで、もともとのコードを変更することなく

楽天GOLDにFTPアップロードすることが可能です。


ただし、もう一つ注意点があります。

楽天GODLへはPASVモードで接続する必要があるので、

req.UsePassive = true;

の記述を忘れないようにしてください。

  • ブログランキング・にほんブログ村へ
  • FC2ブログランキングへ
  • 人気ブログランキングへ
  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る