作为一名又拍云的技术支撑工程师,小拍每天都会接纳到许多客户的发问。
这其
中,有许多客户会问:
“小拍,请问云存储上传除了运用控制台的文件办理和 FTP 东西之外,有没有其他的途径进行上传呢?
”
“有哒,您能够调用 API 接口来进行上传哦。”
“请问,什么是 API 接口呢?我要怎样调用呢?”
别着急,这就为您介绍 API 接口。
什么是 API 接口
首要,咱们先来看一看 API 接口的界说:
API(Application Programming Interface,运用程序编程接口)是一些预先界说的函数,意图是供给运用程序与开发人员依据某软件或硬件得以拜访一组例程的才干,而又无需拜访源码,或了解内部作业机制的细节。
从界说中,咱们先划下要点:函数、 供给运用程序与开发人员、无需拜访源码、例程 。其间,例程是某个体系对外供给的功用接口或服务的调集。
看完这个界说是不是感觉自己看了个孤寂,这解说跟不解说没有不同啊?
好啦,不要忧虑,小拍来给咱们直接了当的说一说。
API 其实能够了解为是接纳要求的信差,经过 API 接口,咱们奉告体系(例程)想要做什么,体系再把处理成果呼应回来。
假如用一个现实生活中的场景来举例阐明,那么餐厅的服务员其实便是一个典型的 API 。幻想一下你正坐在餐桌前,面前桌子上有一张点菜用的菜单,点好菜后,交由厨房进行处理。但现在少了一个要害的链接点,怎样把咱们的单子送到厨房,再把食物送到我的桌上呢?
这便是服务员(API)上台的时分了。服务员便是这个信差,他会传递你的要求或许餐点,把这些信息奉告厨房(体系),厨房就会知道怎样做,然后把餐品经过服务员端(呼应)给你。
现在咱们把这个原理运用到真实的 API 比如上来。
快递单号查询,这咱们应该很了解吧。朋友经过顺丰寄了一箱零食给你,并奉告你了快递单号,你就能够在顺丰的官网上,输入快递单号进行查询。顺丰的体系接纳到查询,就会在体系中查找对应快递的信息,呼应给你。
可是,许多时分咱们并不是直接经过快递公司的网站去查询快递信息的。比方说经过淘宝买的衣服,卖家经过顺丰发货,但咱们能够在淘宝上查询到顺丰快递的信息。那么淘宝是怎样获取到存放在顺丰服务器上的快递数据呢?
没错,这儿便是运用了 API 。淘宝能够经过顺丰供给的 API 接口,来获取存放在顺丰服务器上的快递信息,最终显现在咱们面前。
现在再看上边的界说,是不是感觉好了解一些了呢?API 接口便是预先界说好的函数逻辑,供给给其他体系恳求,然后回来成果的一个东西。
为什么要运用 API 接口
在知道了 API 接口的效果后,运用 API 接口的原因也就一望而知了。举个比如:你计划开发一个打车软件,需求在页面上展示地图,那你会怎样做呢?
假如说自己来开发地图,开发时刻就会大大延伸,本钱也会增加许多。
这个时分,其实能够在高德敞开渠道或许百度地图的敞开渠道,找到地图 API,购买他们的服务,布置调用相关的 API ,这样就能够快速在咱们软件中上线地图功用了。
所以,关于软件供给商来说,敞开 API 并让其他运用程序来调用,构成生态,软件才干发挥最大的价值,才干更有生命力,一起他人也看不见代码,不会损伤商业秘要。
关于运用开发者来说,有了敞开的 API ,就能够直接调用多家公司做好的功用来做自己的运用,不需求一切的工作都自己操刀,节约精力。
怎样运用 API 接口
现在市面上敞开的 API 接口,一般都是经过 HTTP 恳求调用的。例如,一些第三方供给的查询气候的功用,咱们就能够依据第三方供给的 A
接下来,小拍以又拍云存储上传 API 为例,经过 curl 东西来完结一个向云存储上传文件的操作。接下来会涉及到一些指令行东西以及代码的操作,假如你对 curl 这个东西不太了解的话,也能够参阅小拍之前的文章
《双剑合璧-把握 curl 和 Dig 走天边》
哦。
每个 API 接口依据效果不同,需求传递的参数也是不尽相同的。因而,咱们在运用一个 API 接口之前,最好先看一下官方文档的 API 阐明。
Authorization 的生成,小拍运用最简略的根本认证来进行演示。
依据鉴权文档介绍,curl 支撑直接传入操作员名和暗码来生成鉴权恳求头。
了解 API 接口调用的规矩之后,咱们就能够开端预备数据,来向云存储空间上传文件啦。
例如,小拍的桌面上有一张图片,小拍想把图片上传到自己云存储空间下的 images 目录下,保存名为 lufei.jpg。
小拍的云存储空间名为 fileupload-upyun,操作员名为 hello,对应的暗码为 dF4XhRbnpsvonU1dgdetURncHSwa2Z37,这样,咱们就有调用上传 API 的必要参数了。
接下来,咱们就依照要求,拼装 curl 的恳求指令。
curl -X PUT \
http://v0.api.upyun.com/fileupload-upyun/api/lufei.jpg \
-u hello:dF4XhRbnpsvonU1dgdetURncHSwa2Z37 \
-T C:\Users\hilih\Desktop\test.jpg
参数阐明:
-X 能够指定 curl 建议恳求的办法
-u 对传入的数据进行 HTTP 根本认证,也便是用户和暗码组和的base64编码
-T 能够使 curl 读取指定途径下的文件
这样呢,咱们就成功的调用了云存储的上传 API 接口,经过接口上传了一张本地的图片到存储空间中。
△ 经过云存储的测验域名对上传图片进行拜访
不过,运用 curl 建议 HTTP 恳求,看上去总有一些费事,指令行也太反人类了吧,有没有愈加友爱的界面呢?其时啦,运用 curl 仅仅其间一种的上传办法,咱们还能够经过其它方法,来向云存储 API 建议 HTTP 恳求。
网页代码:
html
head
meta charset="utf-8"
title云存储上传/title
script src="https://cdn.bootcdn.net/ajax/libs/axios/0.20.0/axios.min.js" /script
/head
body
上传服务空间:input id='bucketname'
操作员账号:input id='username'
操作员暗码:input id='password'
存储途径:input id='path'
文件挑选:input id='fileupload' type='file' name='file' /brbr
button上传/button
script type="text/javascript"
window.onload = function() {
document.querySelector('button').onclick = ufload;
}
function ufload() {
var bucket = document.querySelector('#bucketname').value;
var username = document.querySelector('#username').value;
var password = document.querySelector('#password').value;
var path = document.querySelector('#path').value;
var input = document.querySelector('#fileupload');
var file = input.files[0];
axios.defaults.baseURL = 'http://v0.api.upyun.com';
axios.put('/' + bucket + path, file, {
auth: {
username: username,
password: password
}
}).then(function(response) {
console.log(response.data);
console.log(response.headers);
console.log(response.status);
if (response.status == 200) {
alert('上传成功');
}
})
}
/script
/body
/html
也欢迎你运用了解的编程言语,来测验调用 API 上传接口呀。
快 来
找
又
小 拍
找
又
小 拍

推 荐 阅 读



三连击,小拍奖金+ 5 元
ღ( ´・ᴗ・` )




三连击,小拍奖金+ 5 元
ღ( ´・ᴗ・` )