如何通过Dropbox API获取可用于HTML5视频标签的直接文件URL
问题描述
我正在使用Dropbox API的files-list_folder接口获取公共文件夹中的文件列表,接口端点为https://api.dropboxapi.com/2/files/list_folder。接口返回的响应示例如下:
{ "entries": [ { ".tag": "file", "name": "01.mp4", "path_lower": "/video/01.mp4", "path_display": "/video/01.mp4", "parent_shared_folder_id": "3022865105", "id": "id:FDeU6KOzmRUAAAAAAAAABw", "client_modified": "2022-09-14T15:54:42Z", "server_modified": "2022-09-14T16:06:36Z", "rev": "5e8a55037c991b42d42d1", "size": 12347528, "sharing_info": { "read_only": false, "parent_shared_folder_id": "3022865105", "modified_by": "dbid:AACtZetM6hKYpGsPZvtNDZUFRldH8r35OSk" }, "is_downloadable": true, "content_hash": "7e6d5e0d1947523808762a6fc34fec7651393ef9d4f4ea2a64fb71acaf3a1240" }, { ".tag": "file", "name": "02.mp4", "path_lower": "/video/02.mp4", "path_display": "/video/02.mp4", "parent_shared_folder_id": "3022865105", "id": "id:FDeU6KOzmRUAAAAAAAAACA", "client_modified": "2022-09-14T15:54:42Z", "server_modified": "2022-09-14T16:06:36Z", "rev": "5e8a55037c992b42d42d1", "size": 18791452, "sharing_info": { "read_only": false, "parent_shared_folder_id": "3022865105", "modified_by": "dbid:AACtZetM6hKYpGsPZvtNDZUFRldH8r35OSk" }, "is_downloadable": true, "content_hash": "93d33bf10fa4e5c340dac84ebafb54d0b2759cc6e801da8ab03ae14783365fac" } ], "cursor": "AAGUGbHG7ju_3pegzOTPruYbexWxEXYyJGNt5Rt1Frj8QAj_JFDTwppfDTneAq-pMfGEbX4i-aDRndn8j-MrAiLy4mCUDc8-GU_XsUdAoShGXtzWKDsDaQwWCHFmhOo0bBuXElarr3Rdil9pTMqkMcfG2hSZPeepDL_omI0Oo0a-_suATq_zoBrH-o2zNKe9-udR2UrsgPuMl9toei-Tt19FCLHX4uzyT6xAXJjFKnWdfj7y3lgyoxrJqtQPVBc1WT0", "has_more": false }
我需要从该响应中获取每个文件的直接URL,用于HTML5 video标签。手动右键文件得到的URL类似:https://www.dropbox.com/s/305pjdhly2w948y/01.mp4?dl=0,请问如何通过API获取这类链接?
解决方案
files-list_folder接口本身不会返回可直接用于video标签的访问链接,你需要调用另外两个Dropbox API接口来实现:
方法1:获取临时访问链接(适合短期使用)
调用files/get_temporary_link接口,传入files-list_folder返回的文件path_lower或id即可获取临时直接链接:
- 接口端点:
https://api.dropboxapi.com/2/files/get_temporary_link - 请求参数示例(JSON格式):
{ "path": "/video/01.mp4" } - 响应会包含一个
link字段,格式类似https://dl.dropboxusercontent.com/2/files/xxx/01.mp4,这个链接可以直接作为HTML5 video标签的src属性值,无需修改参数。 - 注意:临时链接默认有效期为4小时,到期后需要重新调用接口生成。
方法2:创建永久共享链接(适合长期使用)
如果需要长期可用的链接,调用sharing/create_shared_link_with_settings接口:
- 接口端点:
https://api.dropboxapi.com/2/sharing/create_shared_link_with_settings - 请求参数示例(JSON格式):
{ "path": "/video/01.mp4", "settings": { "requested_visibility": "public" } } - 响应的
url字段就是类似手动右键得到的链接,比如https://www.dropbox.com/s/305pjdhly2w948y/01.mp4?dl=0。 - 要让这个链接能直接在video标签中播放,需要将参数
dl=0替换为raw=1,最终链接为https://www.dropbox.com/s/305pjdhly2w948y/01.mp4?raw=1,这样浏览器会直接加载视频文件而非Dropbox预览页面。
内容的提问来源于stack exchange,提问作者Toniq
相关产品推荐
相关产品推荐

