🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# ## 1、获得授权access_token 访问这个接口需要提供`appid`和`secret`,这两者需要到富源平台注册应用,然后在应用的右侧获得。 这个`access_token`的有效时间为两个小时,请注意管理避免过期。 # ~~~[api:notDebug] get:/v1/token *appid=a44r4aMbO7BZ1NoW#申请的appid *secret=a4474wRq9BwujRV7hM4SGH0QMyrEJF5J#申请的appsecret *grant_type=client_credential#类型 <<< success { "accessToken": "a447bdDAUeKORvmt", "expires": 7200 } <<< 403 { "status": 403, "error": "SecretIsInvalid", "message": "无效的 secret" } ~~~ # ## 2,上传文档 将文件以指定的key值上传,注意key不能以`/`开头: * `/abc/e.jpg`:错误 * `abc/e.jpg`:正确 # ~~~[api:base] post:http://foxconn.gateway.api.liyueyun.com/api/lss/attachments *key=myFolder/secFolder/fileName.jpg#附件的Key,支持目录格式。相同Key的文档会被覆盖 <<< success { "success": true } <<< 500 错误一 {  error:"App_Module_Not_Formal",  message:"此服务模块还未申请正式"  } 错误二 { error:"Params_key_Missing", message:"参数key不能为空!" } <<< 400 { "status": 400, "error": "FRS.0001", "message": "输入格式不正确" } <<< 401 错误一: { "status": 401, "error": "AccessTokenNoExist", "message": "必须有 accessToken" } 错误二: { "status": 401, "error": "AccessTokenIsInvalid", "message": "无效的 accessToken" } 错误三: { "status": 401, "error": "AccessTokenHasExpired", "message": "accessToken 已过期" } <<< 403 错误一: { "status": 403, "error": "SecretIsInvalid", "message": "无效的 secret" } 错误二: { "status": 403, "error": "SecretHasDisabled", "message": "secret 已被禁用" } 错误三: { "status": 403, "error": "SecretError", "message": "secret 状态异常" } 错误四: { "status": 403, "error": "LimitExceeded", "message": "已超出用量限制" } ~~~ # # ##### C#访问示例代码: ~~~CSharp var client = new RestClient("http://foxconn.gateway.api.liyueyun.com/api/lss/attachments?key=myFolder/secFolder/fileName.jpg"); client.Timeout = -1; var request = new RestRequest(Method.POST); request.AddHeader("Authorization", "Bearer a447bdDAUeKORvmt"); // 这里的a447bdDAUeKORvmt就是接口1取得的access_token request.AddParameter("application/octet-stream", "<file contents here>", ParameterType.RequestBody); IRestResponse response = client.Execute(request); Console.WriteLine(response.Content); ~~~ # ##### Java访问示例代码: ~~~ java OkHttpClient client = new OkHttpClient().newBuilder() .build(); MediaType mediaType = MediaType.parse("application/octet-stream"); RequestBody body = RequestBody.create(mediaType, "<file contents here>"); Request request = new Request.Builder() .url("http://foxconn.gateway.api.liyueyun.com/api/lss/attachments?key=myFolder/secFolder/fileName.jpg") .method("POST", body) .addHeader("Authorization", "Bearer a447bdDAUeKORvmt") // 这里的a447bdDAUeKORvmt就是接口1取得的access_token .build(); Response response = client.newCall(request).execute(); ~~~ # #### Nodejs访问示例代码 ~~~javascript var unirest = require('unirest'); var req = unirest('POST', 'http://foxconn.gateway.api.liyueyun.com/api/lss/attachments?key=myFolder/secFolder/fileName.jpg') .headers({ 'Content-Type': 'application/octet-stream', 'Authorization': 'Bearer a447bdDAUeKORvmt' // 这里的a447bdDAUeKORvmt就是接口1取得的access_token }) .send("<file contents here>") .end(function (res) { if (res.error) throw new Error(res.error); console.log(res.raw_body); }); ~~~ # # ## 3,获得文档的访问权限 可以取得文档的访问权限,如`public`,`private`或是`null`。当是`null`时表示这个文档不存在。 # ~~~[api:base] get:http://foxconn.gateway.api.liyueyun.com/api/lss/attachments/acl *key=myFolder/secFolder/fileName.jpg#文档的Key,支持目录格式。 <<< 200 {  "accessControlList":{ "grant":"null" // 这里的值有三个:['public','private','null'] ,分别表示:公开,私有,不存在 } } <<< 500 错误一 {  error:"App_Module_Not_Formal",  message:"此服务模块还未申请正式"  } 错误二 { error:"Params_key_Missing", message:"参数key不能为空!" } <<< 400 { "status": 400, "error": "FRS.0001", "message": "输入格式不正确" } <<< 401 错误一: { "status": 401, "error": "AccessTokenNoExist", "message": "必须有 accessToken" } 错误二: { "status": 401, "error": "AccessTokenIsInvalid", "message": "无效的 accessToken" } 错误三: { "status": 401, "error": "AccessTokenHasExpired", "message": "accessToken 已过期" } <<< 403 错误一: { "status": 403, "error": "SecretIsInvalid", "message": "无效的 secret" } 错误二: { "status": 403, "error": "SecretHasDisabled", "message": "secret 已被禁用" } 错误三: { "status": 403, "error": "SecretError", "message": "secret 状态异常" } 错误四: { "status": 403, "error": "LimitExceeded", "message": "已超出用量限制" } ~~~ # # ##### C#访问示例代码: ~~~CSharp var client = new RestClient("http://foxconn.gateway.api.liyueyun.com/api/lss/attachments/acl?key=myFolder/secFolder/fileName.jpg"); client.Timeout = -1; var request = new RestRequest(Method.GET); request.AddHeader("Authorization", "Bearer a447bdDAUeKORvmt"); // 这里的a447bdDAUeKORvmt就是接口1取得的access_token IRestResponse response = client.Execute(request); Console.WriteLine(response.Content); ~~~ # ##### Java访问示例代码: ~~~ java OkHttpClient client = new OkHttpClient().newBuilder() .build(); Request request = new Request.Builder() .url("http://foxconn.gateway.api.liyueyun.com/api/lss/attachments/acl?key=myFolder/secFolder/fileName.jpg") .method("GET", null) .addHeader("Authorization", "Bearer a447bdDAUeKORvmt") // 这里的a447bdDAUeKORvmt就是接口1取得的access_token .build(); Response response = client.newCall(request).execute(); ~~~ # #### Nodejs访问示例代码 ~~~javascript var unirest = require('unirest'); var req = unirest('GET', 'http://foxconn.gateway.api.liyueyun.com/api/lss/attachments/acl?key=myFolder/secFolder/fileName.jpg') .headers({ 'Authorization': 'Bearer a447bdDAUeKORvmt' // 这里的a447bdDAUeKORvmt就是接口1取得的access_token }) .end(function (res) { if (res.error) throw new Error(res.error); console.log(res.raw_body); }); ~~~ # # ## 4,直接下载文档 获得文档的二进制流。 # ~~~[api:base] get:http://foxconn.gateway.api.liyueyun.com/api/lss/attachments/download *key=myFolder/secFolder/fileName.jpg#文档的Key,支持目录格式。 <<< <文件二进制> <<< 500 错误一 {  error:"App_Module_Not_Formal",  message:"此服务模块还未申请正式"  } 错误二 { error:"Params_key_Missing", message:"参数key不能为空!" } <<< 400 { "status": 400, "error": "FRS.0001", "message": "输入格式不正确" } <<< 401 错误一: { "status": 401, "error": "AccessTokenNoExist", "message": "必须有 accessToken" } 错误二: { "status": 401, "error": "AccessTokenIsInvalid", "message": "无效的 accessToken" } 错误三: { "status": 401, "error": "AccessTokenHasExpired", "message": "accessToken 已过期" } <<< 403 错误一: { "status": 403, "error": "SecretIsInvalid", "message": "无效的 secret" } 错误二: { "status": 403, "error": "SecretHasDisabled", "message": "secret 已被禁用" } 错误三: { "status": 403, "error": "SecretError", "message": "secret 状态异常" } 错误四: { "status": 403, "error": "LimitExceeded", "message": "已超出用量限制" } ~~~ # # ##### C#访问示例代码: ~~~CSharp var client = new RestClient("http://foxconn.gateway.api.liyueyun.com/api/lss/attachments/download?key=myFolder/secFolder/fileName.jpg"); client.Timeout = -1; var request = new RestRequest(Method.GET); request.AddHeader("Authorization", "Bearer a447bdDAUeKORvmt"); // 这里的a447bdDAUeKORvmt就是接口1取得的access_token IRestResponse response = client.Execute(request); ~~~ # ##### Java访问示例代码: ~~~ java OkHttpClient client = new OkHttpClient().newBuilder() .build(); Request request = new Request.Builder() .url("http://foxconn.gateway.api.liyueyun.com/api/lss/attachments/download?key=myFolder/secFolder/fileName.jpg") .method("GET", null) .addHeader("Authorization", "Bearer a447bdDAUeKORvmt") // 这里的a447bdDAUeKORvmt就是接口1取得的access_token .build(); Response response = client.newCall(request).execute(); ~~~ # #### Nodejs访问示例代码 ~~~javascript var unirest = require('unirest'); var req = unirest('GET', 'http://foxconn.gateway.api.liyueyun.com/api/lss/attachments/download?key=myFolder/secFolder/fileName.jpg') .headers({ 'Authorization': 'Bearer a447bdDAUeKORvmt' // 这里的a447bdDAUeKORvmt就是接口1取得的access_token }) .end(function (res) { if (res.error) throw new Error(res.error); //这里保存返回的文件流 }); ~~~ # # ## 5,取得文档的临时公开访问地址 接口可以取得文档,但这是一个私有接口,访问需要提供token,而在业务系统中常常需要提供一个临时公开的文档 # ~~~[api:base] get:http://foxconn.gateway.api.liyueyun.com/api/lss/attachments/download *key=myFolder/secFolder/fileName.jpg#文档的Key,支持目录格式。 <<< <文件二进制> <<< 500 错误一 {  error:"App_Module_Not_Formal",  message:"此服务模块还未申请正式"  } 错误二 { error:"Params_key_Missing", message:"参数key不能为空!" } <<< 400 { "status": 400, "error": "FRS.0001", "message": "输入格式不正确" } <<< 401 错误一: { "status": 401, "error": "AccessTokenNoExist", "message": "必须有 accessToken" } 错误二: { "status": 401, "error": "AccessTokenIsInvalid", "message": "无效的 accessToken" } 错误三: { "status": 401, "error": "AccessTokenHasExpired", "message": "accessToken 已过期" } <<< 403 错误一: { "status": 403, "error": "SecretIsInvalid", "message": "无效的 secret" } 错误二: { "status": 403, "error": "SecretHasDisabled", "message": "secret 已被禁用" } 错误三: { "status": 403, "error": "SecretError", "message": "secret 状态异常" } 错误四: { "status": 403, "error": "LimitExceeded", "message": "已超出用量限制" } ~~~ # # ##### C#访问示例代码: ~~~CSharp var client = new RestClient("http://foxconn.gateway.api.liyueyun.com/api/lss/attachments/download?key=myFolder/secFolder/fileName.jpg"); client.Timeout = -1; var request = new RestRequest(Method.GET); request.AddHeader("Authorization", "Bearer a447bdDAUeKORvmt"); // 这里的a447bdDAUeKORvmt就是接口1取得的access_token IRestResponse response = client.Execute(request); ~~~ # ##### Java访问示例代码: ~~~ java OkHttpClient client = new OkHttpClient().newBuilder() .build(); Request request = new Request.Builder() .url("http://foxconn.gateway.api.liyueyun.com/api/lss/attachments/download?key=myFolder/secFolder/fileName.jpg") .method("GET", null) .addHeader("Authorization", "Bearer a447bdDAUeKORvmt") // 这里的a447bdDAUeKORvmt就是接口1取得的access_token .build(); Response response = client.newCall(request).execute(); ~~~ # #### Nodejs访问示例代码 ~~~javascript var unirest = require('unirest'); var req = unirest('GET', 'http://foxconn.gateway.api.liyueyun.com/api/lss/attachments/download?key=myFolder/secFolder/fileName.jpg') .headers({ 'Authorization': 'Bearer a447bdDAUeKORvmt' // 这里的a447bdDAUeKORvmt就是接口1取得的access_token }) .end(function (res) { if (res.error) throw new Error(res.error); //这里保存返回的文件流 }); ~~~ # # ## 6,删除文档 删除指定key值对应的文档 # ~~~[api:base] delete:http://foxconn.gateway.api.liyueyun.com/api/lss/attachments *key=myFolder/secFolder/fileName.jpg#文档的Key,支持目录格式。 <<< 200 {  success:true } <<< 500 错误一 {  error:"App_Module_Not_Formal",  message:"此服务模块还未申请正式"  } 错误二 { error:"Params_key_Missing", message:"参数key不能为空!" } <<< 400 { "status": 400, "error": "FRS.0001", "message": "输入格式不正确" } <<< 401 错误一: { "status": 401, "error": "AccessTokenNoExist", "message": "必须有 accessToken" } 错误二: { "status": 401, "error": "AccessTokenIsInvalid", "message": "无效的 accessToken" } 错误三: { "status": 401, "error": "AccessTokenHasExpired", "message": "accessToken 已过期" } <<< 403 错误一: { "status": 403, "error": "SecretIsInvalid", "message": "无效的 secret" } 错误二: { "status": 403, "error": "SecretHasDisabled", "message": "secret 已被禁用" } 错误三: { "status": 403, "error": "SecretError", "message": "secret 状态异常" } 错误四: { "status": 403, "error": "LimitExceeded", "message": "已超出用量限制" } ~~~ # # ##### C#访问示例代码: ~~~CSharp var client = new RestClient("http://foxconn.gateway.api.liyueyun.com/api/lss/attachments?key=myFolder/secFolder/fileName.jpg"); client.Timeout = -1; var request = new RestRequest(Method.DELETE); request.AddHeader("Authorization", "Bearer a447bdDAUeKORvmt"); // 这里的a447bdDAUeKORvmt就是接口1取得的access_token IRestResponse response = client.Execute(request); Console.WriteLine(response.Content); ~~~ # ##### Java访问示例代码: ~~~ java OkHttpClient client = new OkHttpClient().newBuilder() .build(); Request request = new Request.Builder() .url("http://foxconn.gateway.api.liyueyun.com/api/lss/attachments?key=myFolder/secFolder/fileName.jpg") .method("DELETE", null) .addHeader("Authorization", "Bearer a447bdDAUeKORvmt") // 这里的a447bdDAUeKORvmt就是接口1取得的access_token .build(); Response response = client.newCall(request).execute(); ~~~ # #### Nodejs访问示例代码 ~~~javascript var unirest = require('unirest'); var req = unirest('DELETE', 'http://foxconn.gateway.api.liyueyun.com/api/lss/attachments?key=myFolder/secFolder/fileName.jpg') .headers({ 'Authorization': 'Bearer a447bdDAUeKORvmt' // 这里的a447bdDAUeKORvmt就是接口1取得的access_token }) .end(function (res) { if (res.error) throw new Error(res.error); console.log(res.raw_body); }); ~~~