返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >PHP使用阿里云对象存储oss
  • 435
分享到

PHP使用阿里云对象存储oss

phposs对象存储 2023-10-21 10:10:33 435人浏览 独家记忆
摘要

目录 1.使用composer安装依赖 2.编写代码 3.调用 4.遇到问题 (1) 上传成功 访问发现没有权限 (2) 接着访问,发现直接下载 (3) 上传文件 发现文件内容是空 5.自定义域名上传文件 (1) 配置: (2) 代码修改

目录

1.使用composer安装依赖

2.编写代码

3.调用

4.遇到问题

(1) 上传成功 访问发现没有权限

(2) 接着访问,发现直接下载

(3) 上传文件 发现文件内容是空

5.自定义域名上传文件

(1) 配置:

(2) 代码修改


1.使用composer安装依赖

composer require aliyuncs/oss-sdk-PHP

目录结构如下:

2.编写代码

getOssClient();    }        protected function getOssClient()    {        try {            return new OssClient(self::$accessKeyId, self::$accessKeySecret, self::$endpoint);        } catch (OssException $e) {            print_r($e->getMessage());            return '';        }    }        public function createBucket($bucketName)    {        return self::$client->createBucket($bucketName);    }        public function uploadOssFile($bucketName, $fileName, $local_file)    {        // $fileName 表示上传文件到OSS时需要指定包含文件后缀,不包含Bucket名称在内的完整路径,例如abc/efg/123.jpg。        try {            return self::$client->uploadFile($bucketName, $fileName, $local_file);        } catch (OssException $e) {            print_r($e->getMessage());            return '';        }    }        public function delOssFile($bucketName, $fileName)    {        // $fileName 表示删除OSS文件时需要指定包含文件后缀,不包含Bucket名称在内的完整路径,例如abc/efg/123.jpg        try {            return self::$client->deleteObject($bucketName, $fileName);        } catch (OssException $e) {            print_r($e->getMessage());            return '';        }    }}

3.调用

require_once 'OssHandle.php';$obj = new OssHandle();// fileName 除bucket名称外 包含文件路径(文件夹)和文件名称// local_file 绝对地址 或相对地址$info = $obj->uploadOssFile('你的bucket', 'uploads/other/1.jpg', '../images/1.jpg');print_r($info);// fileName 除bucket名称外 包含文件路径(文件夹)和文件名称$bool = $obj->delOssFile('你的bucket', 'uploads/other/2.jpg');print_r($bool);

4.遇到问题

(1) 上传成功 访问发现没有权限

提示:AccessDenied You have no right to access this object because of bucket acl.

解决 修改权限

(2) 接着访问,发现直接下载

解决:

配置自定义域名解析

在访问后,问题解决

(3) 上传文件 发现文件内容是空

额 原来是用了字符串上传方式 “putObject”

换成文件上传方式“uploadFile”后解决

5.自定义域名上传文件

(1) 配置:

参考上面自定义域名解析

(2) 代码修改

如下:

// Endpoint按实际情况填写private static $endpoint = "Http://oss.solveset.net";//private static $endpoint = "http://oss-cn-beijing.aliyuncs.com";protected function getOssClient(){    # true为开启CNAME。CNAME是指将自定义域名绑定到存储空间上    return new OssClient(self::$accessKeyId, self::$accessKeySecret, self::$endpoint, true);}

最后,上传完成。

 

来源地址:https://blog.csdn.net/json_ligege/article/details/127924626

--结束END--

本文标题: PHP使用阿里云对象存储oss

本文链接: https://www.lsjlt.com/news/433558.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作