在下就是渣渣雪啦。这几天整cdn文件上传整了好久,宝宝心里很是着急啊,看文档一顿瞎瞅,所以一定要总结一下不至于以后再掉坑里。也给大家借鉴一下。
因为一个项目要有几百万张,数据量特别大,我用的是tp5框架,这时候存到本地是特别可怕的一件事情,所以是时候使用云存储了,其实对于ucloud我最初是拒绝的,因为我想着我的cto写多好,他写我就可以避免这个问题,哈哈,然而未能幸免。所以一件事情,做过了就都会觉得很简单,洒洒水了,不过我觉得明天依然有无穷无尽的bug需要我改,这是一个程序员改变不了的宿命。
首先你学习一个东西,你得有一个好的文档,不然真的是把你带的越来越远,只能挖个坑,埋个土。https://docs.ucloud.cn/storage_cdn/ufile/tools这个是ucloud的官方文档,你得入门就在这里开始了。
然后你使用人家的php sdk得引入人家的文件吧?所以在文档中找sdk下载
点击进去之后克隆下载到本地解压一下就ok了
下载 解压解压之后的文档结构是这样的
有demo和ucloud两个文档,见名识意,demo就是示例代码啦,当时我还傻傻的百度呢,实际上人家已经都告诉你杂用的了。
这delete.php是用来删除图片的,get.php就是叫你咋调用这些方法的,multipart.php就是大文件上传咯,mupload.php是切片上传,将一个文件给你切成n片再给你攒起来,这就牛逼了。
ucloud才是这里的真正主角,所以你在把ucloud引入文件的时候,只需要放这一个目录就可以啦。我选择把他放在vendor目录下了,这是为啥捏?因为好引呗,直接vendor('ucloud/proxy');就可以啦,为啥不放在think里面呢?当然也ok了,只要你能引得到就可以了
那么现在问题来了,引入了如何配置呢?真让人头疼,哪里去获取这些配置项啊?我的内心有一万个疑问和草泥马在奔跑,遇到问题就是辣么不想淡定,像个智障,哈哈。
我看到这个目录中的配置,我在想这个空间域名后缀到底要不要改,当然终于在我文件上传一次有一次的404不命中以及各种错之后,最后的答案是当然要改了,从哪里看空间域名后缀呢?首先你得有一个ucloud的账号,登录进去。直接搜ucloud登录就可以了,登录之后选择产品与服务里面的对象存储
然后创建存储空间,前提是你要实名认证才能用,要传上字节的身份证号,身份证照片,银行卡号,这是个人认证,还可以进行企业认证,大概几分钟认证完之后你就可以存储了
你得主要你创建的空间类型,如果是公开的是都可以访问的,私有的是外部访问不了的,除非你有公钥和私钥。
可以直接在这里面进行文件上传,也可以在项目中调用他的方法
还有配置里面的公钥和私钥是在产品与服务中-操作管理-API密钥里面生成的,每个用户唯一而且不会改变
获取你的公钥和密钥填入你的conf.php中就能使用了。
写了个示例代码
$bucket就是你在创建存储空间时候的空间存储域名,写啥就是傻就行了,$key是你要上传的文件名,历史经验告诉我,文件名是绝对不能重复的,重复了传不上,所以你可以使用一个uniqid()获取当前毫秒数给他加在文件名里面。然后就是调用他的方法传入这些参数就可以了。其中$data['ETag']是这个文件的路径,和这个路径一样,访问这个路径就可以展示图片,文档的话就直接给你下载了,然后将这些路径存到你的数据库就可以了。
其实真的就是一个接口的调用而已,很简单,洒洒水啦。所以我们要努力变得更优秀。我的最终目标是不加班,一个小时写完的代码,为什么要浪费一天的时间。that's not real life。加油
网友评论