PHP-阿里云oss使用

这篇具有很好参考价值的文章主要介绍了PHP-阿里云oss使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

为什么要使用第三方存储?

1)静态文件会占用大量带宽;
2)加载速度
3)存储空间

第三方存储有哪些?

1)阿里云oss
2)七牛云
3)又拍云
等等
阿里云OSS的介绍https://www.aliyun.com/product/oss/

阿里云oss的使用

阿里云oss使用步骤:
1.申请key和secret(把key和secret保存好,项目中配置使用);
2.新建Bucket
3.查看文档(对象存储oss->开发者指南->sdk参考->PHPsdk)

composer require aliyuncs/oss-sdk-php

4.推荐工具:常用工具->ossbrowser

准备工作
1.申请key和secret
打开阿里云官网,登录账号之后,在控制台左侧选择对象存储oss,进入之后点击右侧的AccessKey如下图

PHP-阿里云oss使用

2.新建Bucket
PHP-阿里云oss使用

下载sdk

composer require aliyuncs/oss-sdk-php

查看endpoint地址,在找不到情况下选择新建-》地域便可以看到endpoint地址

PHP-阿里云oss使用
PHP-阿里云oss使用

阿里云oss配置参数

"OSS_ACCESS_ID"=> '',//创建accesskey的时候保存的
"OSS_ACCESS_KEY" => '',//创建accesskey的时候保存的
"OSS_ENDPOINT" => '',//后台控制面板打开对应的bucket查看,会显示对应的endpoint地址
"OSS_TEST_BUCKET" => ''//bucket名称

Thinkphp5框架中使用oss

先将文件保存在本地
后将文件上传至oss

1、下载sdk后先看案例
PHP-阿里云oss使用

案例Bucket.php

1、引入require_once __DIR__ . '/Common.php';

2、生成实例Common.php
读取密钥配置
const endpoint = Config::OSS_ENDPOINT;
const accessKeyId = Config::OSS_ACCESS_ID;
const accessKeySecret = Config::OSS_ACCESS_KEY;
const bucket = Config::OSS_TEST_BUCKET;
实例oss客户端
new OssClient

3、根据OssClient实例进行bucket创建、删除操作等一系列操作

2、仿照Bucket.php案例实现
D:\phpstudy_pro\WWW\tp5\extend\Aliyun\Oss.php

<?php
namespace Aliyun;

use OSS\OssClient;
use OSS\Core\OssException;

/**
 * Class Common
 *
 * 示例程序【Samples/*.php】 的Common类,用于获取OssClient实例和其他公用方法
 */
class Oss
{
    public $client;
    private $bucket;

    public function __construct()
    {
        $this->getOssClient();
        $this->bucket = config('aliyun.OSS_TEST_BUCKET');
    }

    /**
     * 根据Config配置,得到一个OssClient实例
     *
     * @return OssClient 一个OssClient实例
     */
    public function getOssClient()
    {
        try {
            if (!isset($this->client)) {
                $this->client = $ossClient = new OssClient(config('aliyun.OSS_ACCESS_ID'), config('aliyun.OSS_ACCESS_KEY'), config('aliyun.OSS_ENDPOINT'), false);
            }

        } catch (OssException $e) {
            printf(__FUNCTION__ . "creating OssClient instance: FAILED\n");
            printf($e->getMessage() . "\n");
        }

    }

    /**
     * 上传文件到oss并删除本地文件
     * @param string $path 文件路径
     * @return bollear      是否上传
     */
    public function upload($path)
    {
        #云上的文件默认是从云上的根路径开始的,因此需要去除./
        // 先统一去除左侧的.或者/ 再添加./
        $oss_path = ltrim($path, './');
        $path = './' . $oss_path;
        if (file_exists($path)) {
            // 上传到oss
            $this->client->uploadFile($this->bucket, $oss_path, $path);
            // 如需上传到oss后 自动删除本地的文件 则删除下面的注释
            // unlink($path);
            return true;
        }
        return false;
    }

    /**
     * 删除oss上指定文件
     * @param string $object 文件路径 例如删除 /Public/README.md文件  传Public/README.md 即可
     */
    public function delete_object($object)
    {
        #云上的文件默认是从云上的根路径开始的,因此需要去除./
        $object = ltrim($object, './');
        $res = $this->client->deleteObject($this->bucket, $object);
        return $res;
    }
}

密钥配置
D:\phpstudy_pro\WWW\tp5\application\extra\aliyun.php

<?php
return [
    "OSS_ACCESS_ID"=> 'xxxx',
    "OSS_ACCESS_KEY" => 'xxxxx',
    "OSS_ENDPOINT" => 'oss-cn-shenzhen.aliyuncs.com',
    "OSS_TEST_BUCKET" => 'liuyuanshan'
];

3、使用

use Aliyun\Oss;
class Index extends Controller
{
    public function  oss(){
        $oss = new Oss();
        $oss->upload('./test/test.xlsx');
        //$res = $oss->delete_object('test/test.xlsx');
    }
}

知识拓展

tp5的application/extra扩展配置的详细使⽤⽅式
ThinkPHP5 版本开始增加了扩展配置⽬录的概念,在应⽤配置⽬录或者模块配置⽬录下⾯增加extra⼦⽬录,下⾯的配置⽂件都会⾃动加
载,⽆需任何配置,这极⼤的⽅便了我们进⾏扩展配置。
例如:我们再
⽬录下⾯创建⼀个aliyun.php⽂件,内容如下:
D:\phpstudy_pro\WWW\tp5\application\extra\aliyun.php

<?php
return [
    "OSS_ACCESS_ID"=> 'xxxx',
    "OSS_ACCESS_KEY" => 'xxxxxx',
    "OSS_ENDPOINT" => 'doneke.oss-cn-shenzhen.aliyuncs.com',
    "OSS_TEST_BUCKET" => 'doneke'
];

获取扩展配置信息aliyun是读取aliyun.php文件OSS_ACCESS_ID是常量文章来源地址https://www.toymoban.com/news/detail-502311.html

config('aliyun.OSS_ACCESS_ID')

到了这里,关于PHP-阿里云oss使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 阿里云为什么是国内第一云?有哪些优势?

    为什么选择阿里云?阿里云服务器有哪些优势?阿里云全球第三,国内第一云,阿里云服务器网aliyunfuwuqi.com分享云服务器ECS在丰富ECS实例架构、弹性灵活、稳定可靠、便捷易用、安全保障和成本优化多方面优势: 阿里云服务器ECS(Elastic Compute Service)是一种产品丰富、安全可

    2024年01月16日
    浏览(52)
  • 阿里三面过了,却无理由挂了,HR反问一句话:为什么不考虑阿里?

    进入互联网大厂一般都是“过五关斩六将”,难度堪比西天取经,但当你真正面对这些大厂的面试时,有时候又会被其中的神操作弄的很是蒙圈。 近日,某位测试员发帖称,自己去阿里面试,三面都过了,却被无理由挂了,阿里某部门HR还问他为何不考虑阿里。当时这位程序

    2024年02月06日
    浏览(43)
  • 为什么我不建议在阿里云官网报考ACP/ACE认证?

    考acp的时候刚开始以为直接在阿里云官网寻找课程备考报名就可以了,官方提供的课程应该没有问题,但是实际学习的时候发现,官方提供的内容虽然涵盖了大部分知识点,但是由于缺少对应的学习服务,学习效果上总是差强人意。 除了学习效果意外,再就是两个更重要的原

    2024年02月15日
    浏览(35)
  • 阿里一面:MySQL 单表数据最大不要超过多少行?为什么?这样回答满分!

    来源:https://my.oschina.net/u/4090830/blog/5559454 作为在后端圈开车的多年老司机,是不是经常听到过,“mysql 单表最好不要超过 2000w”,“单表超过 2000w 就要考虑数据迁移了”,“你这个表数据都马上要到 2000w 了,难怪查询速度慢” 这些名言民语就和 “群里只讨论技术,不开车,

    2024年02月06日
    浏览(41)
  • 为什么阿里人能够快速成长?看完他们 Java 架构进化笔记,我秒懂!

    0-1 年入门: Java 基础复盘 (面向对象+Java 的超类+Java 的反射机制+异常处理+集合+泛型+基础 IO 操作+多线程+网络编程+JDK 新特性) Web 编程初探 (Servlet+MySQL 数据库+商品管理系统实战) SSM 从入门到精通 (Spring+SpringMVC+Mybatis+商品管理系统实战-SSM 版) SpringBoot 快速上手 (Spr

    2023年04月19日
    浏览(48)
  • PHP之 使用阿里云对象存储OSS上传图片

    参考地址 https://blog.csdn.net/weixin_42672802/article/details/129136850 https://blog.csdn.net/HZX19941018/article/details/86066529

    2024年02月16日
    浏览(34)
  • 为什么华为、阿里、字节跳动、微软等都走上了云原生和数字化之路?

    亲爱的开发者朋友们好哇, 前几天我发了篇文章,请各位朋友帮忙给最新一期的《新程序员》选封面,并且和大家说内容已经全部完成,即将出版和大家正式见面。今天,它来啦!《新程序员003:云原生和全面数字化实践》正式开启预售,现在下单,在元旦后将正式开放电子

    2024年02月05日
    浏览(46)
  • 阿里云/腾讯云国际站账号:私服游戏服务器:阿里云CTO周靖人:AI时代,为什么阿里云一定要做开源

    开源技术报告, 阿里云私服游戏服务器 怎么看待大模型的路径? 随着 Meta 的 Llama2 开源,开源模型,以及聚集大模型开发者的开源社区,正在发挥不可或缺的作用。 一个例子是,上个月 Hugging Face 得到了谷歌、亚马逊、英伟达、Salesforce、AMD、英特尔、IBM 和高通的共同投资。

    2024年02月06日
    浏览(42)
  • 为什么要使用卷积

    1. 卷积这个名词是怎么解释?“卷”是什么意思?“积”又是什么意思? 卷积的“卷”,指的的函数的翻转,从  g(t)  变成  g(-t)  的这个过程;同时,“卷”还有滑动的意味在里面(吸取了网友李文清的建议)。如果把卷积翻译为“褶积”,那么这个“褶”字就只有翻转的

    2024年02月09日
    浏览(35)
  • 为什么使用AutoMapper

    类库

    2024年02月14日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包