下载安装thinkcmf5.1,安装完成后,切换到项目根目录,使用命令 composer require aliyuncs/oss-sdk-php,参见https://help.aliyun.com/document_detail/85580.html,等待下载完成,即可直接调用使用。
登陆阿里云,开通OSS,创建ram子账号管理oss,参考sdk示例,开始使用OSS
在app/demo创建控制器,引用OSS
use OSS\OssClient; use OSS\Core\OssException;
创建bucket
/** * 创建存储空间 */ function createBucket($bucket) { // 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。 $accessKeyId = "accessKeyId "; $accessKeySecret = "accessKeySecret"; // Endpoint请按实际情况填写。 $endpoint = "http://oss-cn-huhehaote-internal.aliyuncs.com"; try { $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint); //默认创建私有读写的bucket //$result = $ossClient->createBucket($bucket); // 设置存储空间的存储类型为低频访问类型,默认是标准类型。 $options = array( OssClient::OSS_STORAGE => OssClient::OSS_STORAGE_IA ); // 设置存储空间的权限为公共读,默认是私有读写。 $result = $ossClient->createBucket($bucket, OssClient::OSS_ACL_TYPE_PUBLIC_READ, $options); } catch (OssException $e) { $result = $e->getMessage(); } return $result; }
这里有两点要注意,1.需要确定好bucket的权限: 公共读/私有,因为上传到OSS的文件权限会默认集成bucket,2.bucket名称需要注意:只能包括小写字母、数字和短横线(-)。必须以小写字母或者数字开头和结尾。长度必须在 3–63 字节之间。参见https://help.aliyun.com/document_detail/31827.html
上传文件
function uploadFile($object, $filePath) { // 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。 $accessKeyId = "accessKeyId"; $accessKeySecret = "accessKeySecret"; // Endpoint请按实际情况填写。 $endpoint = "http://oss-cn-huhehaote.aliyuncs.com"; // 存储空间名称 $bucket = "bucket"; try { $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint); $result = $ossClient->uploadFile($bucket, $object, $filePath); } catch (OssException $e) { $result = $e->getMessage(); } return $result; }
$ossClient->uploadFile($bucket, $object, $filePath); 其中第一个参数表示bucket名称,第二个参数表示上传到OSS的文件,使用 UTF-8 编码。长度必须在 1–1023 字节之间。不能以正斜线(/)或者反斜线(\)开头。参见https://help.aliyun.com/document_detail/31827.html,第三个参数表示将要上传的本地文件
另外在上传文件时发现,地域节点EndPoint用外网链接,上传成功后,返回的是外网文件地址,外网可访问,如果用内网链接,上传成功会返回内网文件地址,外网无法访问
0.话题发布后没及时显示,请联系官方QQ群管理;
1.话题支持代码,qq截屏直接粘贴,和QQ群一样;
2.问题描述清,比如服务器版本,程序版本;
3.能上代码,就不用文字;
4.把问题发到话题后再发QQ群;
5.如果感觉回复者解答的不错,可以发红包!
6.多帮助别人也是对自己的锻炼!
7.付费讨论中只有提问者和付费用户才可以查看回复
1.评论积分+1;每天最多10次奖励
2.发布话题积分+1;每天最多5次奖励
3.垃圾评论积分-500;
4.黄色,暴力,违反我国法律评论直接封号