WCF サービスから Amazon S3 ウェブサーバーに画像をアップロードしようとしています。Web プロジェクトで動作している Amazon S3 コードと、WCF サービスの Uploded\test.jpg に画像をアップロードする画像アップロード メソッドがあります。WCF サービスで動作する Amazon S3 コードをどのように使用できるかわかりません。1 つ目は、アップロードしていないコード内に次のコード行を追加するときに、Amazon 資格情報を Web confing に入れる方法がわかりません。
<appSettings>
<add key="AWSAccessKey" value="myaccessKey"/>
<add key="AWSSecretKey" value="MySecretKey"/>
</appSettings>
これは、WCF サーバーにアップロードするための私の方法です。ここで //AWS と言ったときに、AWS コードを追加する必要があると思います。
[WebInvoke(UriTemplate = "UploadImage", Method = "POST")]
Stream UploadImage(Stream request)
{
Stream requestTest = request;
StreamWriter sw = null;
string logpath = HttpContext.Current.Server.MapPath("Uploded\\logtest.txt");
logpath = logpath.Replace("SSGTrnService\\", "");
HttpMultipartParser parser = new HttpMultipartParser(request, "file");
string filePath = "";
string passed = parser._content;
string sLogFormat = DateTime.Now.ToShortDateString().ToString() + " " + DateTime.Now.ToLongTimeString().ToString() + " ==> ";
sw = new StreamWriter(logpath);
sw.Flush();
if (parser.Success)
{
// Save the file somewhere
//File.WriteAllBytes(FILE_PATH + title + FILE_EXT, parser.FileContents);
// Save the file
//SaveFile( mtp.Filename, mtp.ContentType, mtp.FileContents);
FileStream fileStream = null;
BinaryWriter writer = null;
try
{
filePath = HttpContext.Current.Server.MapPath("Uploded\\test.jpg"); // BuildFilePath(strFileName, true);
filePath = filePath.Replace("SSGTrnService\\", "");
fileStream = new FileStream(filePath, FileMode.Create);
fileStream.Write(parser.FileContents, 0, parser.FileContents.Length);
// return filePath;
}
catch (Exception ex)
{
return "Error: " + ex.Message;
}
finally
{
if (fileStream != null)
fileStream.Close();
if (writer != null)
writer.Close();
//AWS Code
}
}
//
// returning text for html DOM
//
string text = "Image uploaded: " + parser.Filename + " / " + parser.ContentType + filePath + passed;
System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding();
MemoryStream ms = new MemoryStream(encoding.GetBytes(text));
WebOperationContext.Current.OutgoingResponse.ContentType = "text/html";
return ms;
}
WCF サービスから Amazon S3 を呼び出す際のガイドは素晴らしいでしょう。