[問題] MVC上傳檔案到AWS S3
小弟是程式新手想研究MVC上傳S3功能,
nuget載完awssdk後,
試做了一個controller跟一個view想傳檔案
using Amazon.S3;
using Amazon.S3.Model;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace WebApplication17.Controllers
{
public class S3Controller : Controller
{
private static readonly string _awsAccessKey =
ConfigurationManager.AppSettings["AKxxxxxxxxxxxxxxxx"];
private static readonly string _awsSecretKey =
ConfigurationManager.AppSettings["Nfasxxxxxxxxxxxx"];
private static readonly string _bucketName =
ConfigurationManager.AppSettings["joxxxxxxx"];
public ActionResult UploadToS3()
{
return View();
}
[HttpPost]
public ActionResult UploadToS3(HttpPostedFileBase file)
{
try
{
IAmazonS3 client;
using (client = Amazon.AWSClientFactory.CreateAmazonS3Client(
_awsAccessKey, _awsSecretKey, Amazon.RegionEndpoint.APNortheast1))
{
var request = new PutObjectRequest()
{
BucketName = _bucketName,
CannedACL = S3CannedACL.PublicRead,//PERMISSION TO FILE PUBLIC ACCESIBLE
Key = string.Format("UPLOADS/{0}", file.FileName),
InputStream = file.InputStream,//SEND THE FILE STREAM
};
client.PutObject(request);
}
}
catch (Exception ex)
{
}
return View();
}
}
}
以下是view
@{
ViewBag.Title = "UploadToS3";
}
<h2>UploadToS3</h2>
<form action="@Url.Action("UploadToS3")" method="post"
enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file" />
<input type="submit" />
</form>
可是不論如何都無法上傳
拿掉catch會報錯[AmazonS3Exception: The bucket you are attempting to access must be
addressed using the specified endpoint.
Please send all future requests to this endpoint.]
然後最後就顯示[HttpErrorResponseException: 已發生類型 'Amazon.Runtime.Internal.
HttpErrorResponseException' 的例外狀況。]
查了一天都還是卡在同一個地方,請高手相救~
感激萬分!!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 219.85.195.202
※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1465308120.A.D23.html
→
06/08 12:58, , 1F
06/08 12:58, 1F
bucket設置在東京 和RegionEndPoint是一樣的,我有試其他Region很多都一樣錯,
只有US-east1有特別反應,但每次都顯示AmazoneS3Exception:access denid的error
試著在aws上加了幾個access all action的policy 都沒用
※ 編輯: gn00595067 (1.161.10.140), 06/08/2016 13:42:36
→
06/09 21:08, , 2F
06/09 21:08, 2F
→
06/09 21:08, , 3F
06/09 21:08, 3F
→
06/09 21:08, , 4F
06/09 21:08, 4F
→
06/09 21:08, , 5F
06/09 21:08, 5F
→
06/11 01:09, , 6F
06/11 01:09, 6F
→
06/11 01:10, , 7F
06/11 01:10, 7F
→
06/11 01:11, , 8F
06/11 01:11, 8F
→
06/11 01:13, , 9F
06/11 01:13, 9F