Как я могу показать файл изображения из Amazon S3 в asp.net mvc?

Я должен показать изображение (миниатюра) в поле зрения страница с помощью контроллера/действия. (как:/Image/Thumbnail) я могу отправить файл изображения, который хранится локально путем вызова метода в контроллере.

// sample code
public FileResult Thumbnail()
{
    // get image
    Stream outFile = System.IO.File.Open("c:\\test.jpg", FileMode.Open);

    // send image
    return File(outFile, "image/jpeg");
}

Как я могу отправить файл изображения, который хранится в Amazon S3?

Я могу использовать URL Amazon S3 в вышеупомянутом методе для возврата изображения?-> http://bucketname.s3.amazonaws.com/test.jpg?AWSAccessKeyId=AKIAIDLH65EJ6LSWERDF&Expires=1266497098&Signature=lopDEDErjNLy2uz6X6QCNlIjkpB0%3D

Спасибо

7
задан Jason Berkan 18 February 2010 в 16:54
поделиться

3 ответа

Вы можете вернуть результат перенаправления:

public ActionResult Thumbnail()
{
    return Redirect("http://domain.com/test.jpg");
}

Если URL-адрес указывает на файл изображения, он будет работать. Конечно, вы не должны предоставлять пользователю URL-адрес этого действия, а использовать его в другом представлении как значение атрибута src:

<img src="<%= Url.Action("Thumbnail", "ControllerName") %>" />
4
ответ дан 7 December 2019 в 10:01
поделиться

Попробуйте загрузить изображение с помощью WebClient:

WebClient wClient = new WebClient();
Stream stream = new MemoryStream(wClient.DownloadData('http://....jpg'));

return File(stream, "image/jpg");
1
ответ дан 7 December 2019 в 10:01
поделиться

вы можете сделать webrequest для получения потока

public FileResult Thumbnail()
    {
        // get image
        HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create(@"http://bucketname.s3.amazonaws.com/test.jpg?AWSAccessKeyId=AKIAIDLH65EJ6LSWERDF&Expires=1266497098&Signature=lopDEDErjNLy2uz6X6QCNlIjkpB0%3D");
        WebResponse myResp = myReq.GetResponse();

        Stream outFile = myResp.GetResponseStream();

        // send image
        return File(outFile, "image/jpeg");
    }
1
ответ дан 7 December 2019 в 10:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: