最近在做个项目,想尝试下 用 web 客户端把用户 post 的视频文件直接存到 youtube 或者 onedrive.
youtube 的 api 好像不行了,现在只有 onedrive.. 但是 onedrive 怎么才能像腾讯云 cos 那样保存上去呢?
求教各路大神 给点思路~
最近在做个项目,想尝试下 用 web 客户端把用户 post 的视频文件直接存到 youtube 或者 onedrive.
youtube 的 api 好像不行了,现在只有 onedrive.. 但是 onedrive 怎么才能像腾讯云 cos 那样保存上去呢?
求教各路大神 给点思路~
|
favourstreetJan 23, 2021 via Android
1
onedrive 有一套 oauth 认证的 graph api,可以以分片的方式上传,api 和一般对象存储的分片上传有点不一样,但基本用法是一样的
|
|
skys215Jan 23, 2021
2
“像腾讯云 cos 那样” 是指怎么样?
|
|
mm2xJan 23, 2021
3
onderive 不是有 API 的吗?可以申请啊。
|
|
zqcolorJan 23, 2021
4
'onedrive 有一套 oauth 认证的 graph api' 几年前用过,当时这个挺难用,分片部分好像我们自己实现的,不知道现在号线没有, 但是好像 app 还要注册一下,然后每次要登录一下才能用
|
|
RanyingJan 23, 2021
6
不如传到后端,然后方法就多了起来
|
|
MaiKurakiJan 23, 2021
7
|
|
ShazooJan 23, 2021
9
用 Graphic API 。
``` python def get_upload_session_url(path, filename): url = f"https://graph.microsoft.com/v1.0/me/drive/root:/{config['root_path']}/{path}/{filename}:/createUploadSession" payload = { "item" : { "@microsoft.graph.conflictBehavior": "replace", "name": filename } } resp = r.post(url, headers=add_token_header({'Content-Type': 'application/json'}), data=json.dumps(payload)) return json.loads(resp.content)['uploadUrl'] def upload_file_body(upload_url, localfile): f = open(localfile, 'rb') data = f.read() headers = { 'Content-Length':f'{len(data)}', 'Content-Range': f'bytes 0-{len(data)-1}/{len(data)}' } resp = r.put(upload_url, data=data, headers=headers) f.close() return json.loads(resp.content)['id'] ``` 上传的核心代码。是适合大文件的那种。 |
|
10
|
|
stilleJan 23, 2021
11
用 rclone 上传吧
|
|
12
|
|
IDAEngineJan 23, 2021
13
rclone
|
|
15
@Winter1sComing 谢谢~
|
|
baobao1270Jan 25, 2021 via Android
16
oneindex?
|