お問い合わせ

tel:0570-046-503

営業時間 10:00~17:00(定休日:土日祝日)

楽天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で送る

この記事へのコメントはこちら

メールアドレスは公開されませんのでご安心ください。
また、* が付いている欄は必須項目となりますので、必ずご記入をお願いします。

内容に問題なければ、下記の「コメント送信」ボタンを押してください。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)