如何使用 HTTP REST API 实现文件流方式直接下载文件

官方提供的 php-sdk 中提供了两种文件下载的方式:

  1. 直接读取文件内容:

       $data = $upyun->readFile('/temp/upload_demo.png');
    
  2. 使用文件流模式下载:

       $fh = fopen('/tmp/demo.png', 'w');
       $upyun->readFile('/temp/upload_demo.png', $fh);
       fclose($fh);
    
       注:直接获取文件时,返回文件内容,使用数据流形式获取时,成功返回true。 如果获取文件失败,则抛出异常。
    

其中,第二种“文件流模式下载”是通过文件流方式把文件下载到服务器。但是我希望的是,能不能以文件流的方式直接读取又拍云上的文件,然后直接返回给客户端来实现下载。

因为按照上面的方法,我需要实现文件流下载文件,就只能通过服务器端中转一下。

当然,用浏览器直接打开文件地址的话,有一些文件可以下载,但是有一些比如视频和图片等等就无法下载,所以直接以浏览器打开的方式下载文件行不通。

希望大家给点思路,谢谢!

php-sdk 地址:https://github.com/upyun/php-sdk
又拍云关于文件下载的说明:http://docs.upyun.com/api/rest_api/#_8

阅读 7.6k
1 个回答
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
logo
又拍云问答
子站问答
访问
宣传栏