我正在使用在Laravel中开发的后端服务器创建一个在Angular2中开发的SPA。
Angular2应用播放存储在不同云提供商(Google云端硬盘,SMB服务器,Dropbox,OneDrive等)中的视频文件,但这些提供商由Laravel API处理。
有没有办法提供存储在这些提供程序中的文件而不先在Laravel服务器中下载文件?
任何帮助都将不胜感激。
感谢。
修改
文件无法公开访问。身份验证在Laravel后端设置和工作。
答案 0 :(得分:0)
我假设通过" download",您希望在用户看到第一个视频帧之前提取整个文件时避免延迟。我能想到的唯一方法是使用Laravel和Drive之间的标准http分块来下载下载,然后在Angular应用程序和Laravel之间的http会话中回显。 NB我还没有对此进行测试,但我相信Drive支持分块。
答案 1 :(得分:0)
一般情况下,一种代理是不可避免的。您可以将流从云管道传输到标准输出,例如Stream FTP download to output或类似的。
如果云支持预先分配的网址,例如s3 http://docs.aws.amazon.com/AmazonS3/latest/dev/ShareObjectPreSignedURL.html您可以从网络服务器重定向中受益,例如nginx https://www.nginx.com/resources/wiki/start/topics/examples/xsendfile/中的X-Accel-Redirect
。