Потоковый файл в ASP.NET, C #? - PullRequest
1 голос
/ 20 декабря 2010

Предположим, у нас есть доступ к sth.avi по www.dl.com с прямой ссылкой.например: www.dl.com\sth.aviТакже у нас есть сайт => www.dl2.com.

Теперь мы хотим позволить некоторым пользователям загружать sth.avi с www.dl2.com, но у нас недостаточно места на www.dl2.com для сохранения sth.avi.Возможно ли в ASP.NET для нас читать sth.avi из www.dl.com как потоковый файл и делиться им без сохранения файла на нашем домене.

PS:Я не хочу делиться этой ссылкой www.dl.com\sth.avi, на самом деле я хочу поделиться чем-то вроде этой ссылки www.dl2.com\downloads\sth.avi

Ответы [ 3 ]

5 голосов
/ 20 декабря 2010

Вместо потоковой передачи просто настройте веб-сервер на www.dl2.com для перенаправления запросов от /downloads/sth.avi до www.dl.com/sth.avi.

2 голосов
/ 20 декабря 2010

Да.

Создайте HttpWebRequest в dl.com/... и скопируйте HttpWebResponse в Response.Out.

Обязательно отключите буферизацию.

1 голос
/ 20 декабря 2010

Ну ... это выполнимо, но для меня это плохая идея.

Чтобы достичь своего результата, вы должны открыть HTTP-запрос к www.dl.com (хосту видео), а затем, как только вы прочитаете байты оттуда, перенаправить их в Response поток.

Я не могу предоставить вам рабочий код, но вот псевдокод

using (Stream fileStream = [open HTTP request to www.dl.com])
{
    while (fileStream is not ended)
    {
        buffer = fileStream.Read();
        Response.Write(buffer);
    }
}

Повторюсь: это был псевдокод !!!

...