七牛云对象存储实现简单的上传
官网文档里面也有上传代码,下面的代码只需要自己填上自己的密钥和存储空间名就可以进行上传文件测试。
<?php
require 'vendor/autoload.php';
use Qiniu\Auth;
// 引入上传类
use Qiniu\Storage\UploadManager;
// 用于签名的公钥和私钥
$accessKey = '';
$secretKey = '';
$bucket = '';
// 初始化签权对象
$auth = new Auth($accessKey, $secretKey);
$token = $auth->uploadToken($bucket);
// 要上传文件的本地路径
$filePath = './370009-2.png';
// 上传到存储后保存的文件名
$key = 'test/370009-2.png';
// 初始化 UploadManager 对象并进行文件的上传。
$uploadMgr = new UploadManager();
// 调用 UploadManager 的 putFile 方法进行文件的上传。
list($ret, $err) = $uploadMgr->putFile($token, $key, $filePath, null, 'application/octet-stream', true, null, 'v2');
echo "\n====> putFile result: \n";
if ($err !== null) {
var_dump($err);
} else {
var_dump($ret);
}
代码解读
这段代码是使用七牛云对象存储服务的 PHP SDK 实现文件的上传。以下是对代码的解析:
- 引入依赖库
首先引入了 Qiniu 的 PHP SDK 所需的依赖库 ‘vendor/autoload.php’,由于没有提供具体路径,因此可以看出是在项目当前目录下使用 Composer 安装的 SDK。
- 赋值密钥和 Bucket 名称
将 accessKey、secretKey 和 bucket 的值分别赋给变量 accessKey、secretKey 和 $bucket,这些值来自于七牛云后台账户中创建的 Access Key 和 Secret Key,以及要上传的空间(Bucket)名称。
- 初始化签权对象
使用 accessKey 和 secretKey 初始化一个 Auth 对象,该对象用于进行签名操作,确保接口请求不被非法访问,保证数据安全性。
- 获取上传凭证
调用签权对象的 uploadToken 方法获取上传凭证 $token,该凭证包含了上传文件所需的必要参数,例如:上传策略、上传空间、上传过期时间等。
- 上传文件
使用 UploadManager 对象调用 putFile 方法,将本地文件上传到指定的 Bucket 中。其中,token参数为上传凭证,key 是上传文件保存到 Bucket 中的文件名,$filePath 是待上传的本地文件路径。通过该方法上传文件时,还可以指定上传相关的一些可选参数,例如:指定上传文件类型、是否覆盖已存在的同名文件等。
- 输出上传结果
最后,使用 var_dump() 函数输出上传结果 $ret 和 $err,如果 $err 为 null,则表示上传成功,否则表示上传失败,此时可以查看 $err 中的错误信息。
暂无评论内容