YesApi 接口文档

1506 阿里云OSS 文件上传 App.OSS_Aliyun.UploadFile

接口路径(新):http://api.yesapi.net/api/App/OSS_Aliyun/UploadFile

接口路径(旧):http://api.yesapi.net/?s=App.OSS_Aliyun.UploadFile

接口描述: 阿里云OSS对象存储,简单上传,文件上传,文件必须通过base64方式编码后传递。透传返回阿里云OSS的上传结果。

接口标签:免费(每月最高10万次)付费(包月/按量/私服)验签

接口流量
6
请求协议
HTTP/HTTPS
请求方式
GET/POST(推荐POST)
编码格式
UTF-8
返回格式
JSON

在线测试接口    收藏此接口    在线接口开发    接口请求日记


接口参数 若无特殊说明,接口参数同时支持GET和POST传递;推荐:查询/删除用GET,创建/更新用POST。

参数名字参数类型是否必须默认值备注参数说明
app_key字符串必须最小:32公共参数 开发者应用的app_key,查看我的app_key,如果还没有,可免费注册开通。
sign字符串可选公共参数接口签名,其中:
  • 使用动态签名,签名生成算法请见:如何生成签名,或直接使用封装好的SDK开发包,通过在线测试工具可进行签名的对比和调试。
  • 使用静态签名点击获取我的静态签名
  • 关闭签名,如果不需要签名,可进入小白开放平台接口签名设置关闭或开启签名。
  • 定制签名支持专属签名算法定制开发
uuid字符串可选公共参数 UUID,当前登录的应用会员ID,即全局唯一用户ID,查看我的应用会员。传递此参数后,可以在开放平台查看每日活跃会员统计图表。uuid需要和token一起传递。
token字符串可选公共参数 当前登录会员的会话凭证,可通过会员登录接口获得。uuid需要和token一起传递。
return_data字符串可选0公共参数 数据返回结构,其中:
  • return_data=0,返回完整的接口结果,示例:{"ret":200,"data":{"err_code":0,"err_msg":"","title":"Hi YesApi,欢迎使用小白开放接口!"},"msg":"V3.1.0 YesApi App.Hello.World","_t": 1657513450, "_auth": "9bcd54ff53e71a1d80d37c52bdfabf76"}
  • return_data=1,返回简洁的接口结果,只返回data字段,结构简化一级,更扁平,示例:{"err_code":0,"err_msg":"V3.1.0 YesApi App.Hello.World","title":"Hi YesApi,欢迎使用小白开放接口!"}
content字符串必须此参数建议使用POST方式传递,且必须进行base64编码后传递,对待上传文件二进制内容进行basse64编码后的数据,此部分数据需要纳入签名。格式示例:content=R0lGODlhAQABAIAAAHd3dwAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==
object字符串必须上传的文件名。例如:object=test.jpg

在线测试

参数是否必填
s 固定
uuid 可选
token 可选
return_data 可选
content 必须
object 必须

客户端请求示例

查看我的接口域名、app_key和app_secrect 客户端接入指南(如何生成签名) 开启/关闭签名

请求:
{你的接口域名}/?s=App.OSS_Aliyun.UploadFile&content=R0lGODlhAQABAIAAAHd3dwAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==&object=test.jpg&app_key={你的app_key}&sign={动态签名}

返回(重点关注info.url即可,对应上传成功后的地址):
{
    "ret": 200,
    "data": {
        "err_code": 0,
        "err_msg": "",
        "oss-request-url": "http://yesapi2.oss-cn-beijing.aliyuncs.com/test.jpg",
        "server": "AliyunOSS",
        "date": "Tue, 02 Jun 2020 14:30:54 GMT",
            "content-length": "0",
        "connection": "keep-alive",
                "x-oss-request-id": "5ED6629E50ED1C34382A3B57",
        "etag": "\"EEDC1958E803411BFC5B0405341C4320\"",
                    "x-oss-hash-crc64ecma": "2656481331512443984",
            "content-md5": "7twZWOgDQRv8WwQFNBxDIA==",
                        "x-oss-server-time": "43",
        "info": {
            "url": "http://yesapi2.oss-cn-beijing.aliyuncs.com/test.jpg", // 重点关注info.url即可,对应上传成功后的地址
            "content_type": null,
            "http_code": 200,
            "header_size": 334,
            "request_size": 398,
            "filetime": -1,
            "ssl_verify_result": 0,
            "redirect_count": 0,
            "total_time": 0.11914199999999997,
            "namelookup_time": 0.004186,
            "connect_time": 0.038564,
            "pretransfer_time": 0.038617,
            "size_upload": 43,
            "size_download": 0,
            "speed_download": 0,
            "speed_upload": 360,
            "download_content_length": 0,
            "upload_content_length": 43,
            "starttransfer_time": 0.073071,
            "redirect_time": 0,
            "redirect_url": "",
            "primary_ip": "59.110.190.24",
            "certinfo": [],
            "primary_port": 80,
            "local_ip": "172.18.36.145",
            "local_port": 32812,
            "method": "PUT"
        },
                            "oss-redirects": 0,
            "oss-stringtosign": "PUT\n\nimage/jpeg\nTue, 02 Jun 2020 14:30:54 GMT\n/yesapi2/test.jpg",
                                "oss-requestheaders": {
                                    "Accept-Encoding": "",
                                    "Content-Type": "image/jpeg",
                                    "Date": "Tue, 02 Jun 2020 14:30:54 GMT",
                                    "Host": "yesapi2.oss-cn-beijing.aliyuncs.com",
                                    "Authorization": "OSS LTAIswNj9Bevh5gI:bZkbpYb/NUIQdLlrFR4sj87wGr4="
                                },
        "body": ""
    },
    "msg": "V2.1.1 YesApi App.OSS_Aliyun.UploadFile"
}

接口返回及数据结构

返回字段类型说明
ret整型接口状态码,200表示成功,4xx表示客户端非法请求,5xx表示服务端异常,查看异常错误码
dataobject/array/混合接口返回的业务数据,由不同的API接口决定不同的数据返回字段和结构。当return_data=1时,接口只会返回此data字段。
data.info.url字符串成功上传后返回的OSS链接
msg字符串提示信息,面向技术人员的帮助或错误提示信息
_t整数服务器当时Unix时间戳,例如:1657513450
_auth字符串反向数字签名,可用于客户端进行反向验证,防止数据篡改,例如:9bcd54ff53e71a1d80d37c52bdfabf76。验证算法:_auth = md5(data返回的JSON字符串 + _t当前时间戳字符串 + APP_SECRECT密钥字符串),若需要关闭或开启请提交工单

ret异常错误码

错误码错误类型错误描述信息解决方法
ret = 200成功请求成功
ret = 400客户端非法请求表示客户端参数错误1、根据接口文档的接口参数,提供正确的参数
ret = 404客户端非法请求表示接口服务不存在1、查看小白接口大全,确保接口服务名称拼写正确
ret = 500小白接口异常表示服务端内部错误1、进入QQ交流群897815708,反馈问题;2、或者提交工单,一天内回复

常见问题FAQ

Q1 问:出现 414 Request-URI Too Large 时怎么解决?答:对于全部参数,改用POST方式传递,并且从GET链接里面去掉。

Q2 问:浏览器请求和在线测试接口正常,但本地程序无法正常获取接口结果答:需要注意UTF编码,以及存在中文和特殊字符时的URL编码。GET请求参数应统一进行URL编码后再请求,POST表单数据正常传递即可。

Q3 问:请求接口时提示JSON格式错误答:请先阅读,然后检测本地传递的参数是否符合JSON格式,使用JSON在线工具辅助检测,注意双引号和特殊符号。确认无误后再重新请求API接口。

Q4 问:出现 405 不允许跨域请求 时怎么办?答:可以追加GET参数 &yesapi_allow_origin=1,或参考用反向代理解决跨域问题等3种解决方案。

Q4 问:在wx内无法访问yesapi.cn或okayapi.com域名,怎么办?答:由于曾经短链跳转使用被wx误封域名,可以帮忙进行申诉。申诉后截图联系我们,获取15万次接口流量奖励。