0

私の最初の決定は、画像をデータベースまたはファイルシステムのどちらに保存するかであり、いくつかの調査の結果、ファイルシステムを使用することを選択しました。

画像が増えるにつれてより多くのWebサーバーを取得して水平方向にスケーリングする必要があるため、画像のネットワーク/インターネットの場所をどこかに保存して、どのWebサーバー上にある場合でも画像にアクセスできるようにする必要があります。

理論的には必要なものはありますが、ファイルを取得してリモートサーバーに保存する方法がわかりません。具体的には、これを行うための最良の方法は何ですか?UNCパスはオプションですか?

明確にするために、私はすでに画像サーバー側を持っています。それを選択した任意のWebサーバーに送信/保存する必要があります。

4

1 に答える 1

3

ローカルでは、 File.Copy()だけを実行できます。それ以外の場合は、FTPを使用してアップロードする必要があります。

public void UpLoadFile(String serverFilePath, string localFilePath)
{
    String serverFullPath = "ftp://" + s_ServerHost + serverFilePath;
    FtpWebRequest ftp = (FtpWebRequest)FtpWebRequest.Create(serverFullPath);
    ftp.Credentials = new NetworkCredential("user", "password");
    ftp.KeepAlive = true;
    ftp.Method = WebRequestMethods.Ftp.UploadFile;
    ftp.UseBinary = true;

    using (FileStream fs = File.OpenRead(localFilePath))
    {
        Byte[] buffer = new Byte[fs.Length];
        fs.Read(buffer, 0, buffer.Length);
    }

    using (Stream ftpStream = ftp.GetRequestStream())
        ftpStream.Write(buffer, 0, buffer.Length);
}

それを取得するには、サーバーのIP/ホスト名とファイルの最終的なパブリックパスを知っている必要があります。

于 2013-01-20T15:09:17.067 に答える