1. 允许手动上传监护仪文件,并能归类到一个特定的频道
- OSS上传域名决定为file-xdua-com
- 为这些文件创建一个8个字符的名字,注意,这个名字不能和obja里现有的冲突。 经讨论命名成"BcgGFile", 意思是床带在G模式下的文件。
- 在objc表中创建一个叫"BcgGFile"的频道,频道mannu字段设为1(表示允许手动上传文件),同时在oss创建一个叫"BcgGFile"的文件夹(不是必须,但对本案例是必须的)。
- 在objr表中创建一个权限,允许"ConsoleX"上传文件到"BcgGFile"频道。(手动上传在地球号里,这个动作只由ConsoleX这个APP发出)
- 在obja表中创建一个令牌(acs),这个令牌必须是"BcgGFile".,它对应的"okey"必须是"*",表示这个令牌是一个通用令牌。
2. 当手动上传一个文件到BcgGFile文件夹。
- 触发dua_fobj_trg这个触发器
- 进入handler_fobj函数
- 获取这个文件的meta["xdua-meta-acs"],发现获取不了,因为这个文件是手动上传的。
- 获取这个文件的路径,例如"BcgGFile/demo202104100323.bin",截取"/"之前的字段,认为它就是频道名,同时也是ACS,也就是令牌。
- 此时obja = "BcgGFile"
- 从obja表查看这项,它的okey是"*",从而不再检查okey的匹配程度。
3. 当没有ossutil权限的而其他开发者是怎么传文件到BcgGFile文件夹的。他只能用程序传,比方说监护仪这个安卓APP.
- 首先要求地球号管理员,焦帅给创建一个APP,举例名为"BcgFApp"。
- 在这个APP内部,通过addOsts接口发送{"objr_id"=>"BcgGFile","okey"=>"BcgGFile/BCGO202105011234.bin"}
- 通过这个接口获取一个obja_id,比方说"a7YR8uxi",这个obja允许app"BcgMFApp",上传文件"BcgGFile/BCGO202105011234.bin" 到目录"BcgGFile/"
- 拿着则会个obja_id,设置到文件的meta["x-oss-dua-acs"]里
- 上传这个文件,上传成功后,handler_fobj会触发检查,从而把本文件记录如数据库。