对文件存储的轻量封装,屏蔽不同云环境api差异,方便开发和部署时随意切换存储环境

文件存储

安装

composer require pfinal/storage
  • 本地存储 Local
  • 阿里云 AliOss

    请先 composer require aliyuncs/oss-sdk-php

  • 7牛存诸 Qiniu

    请先 composer require qiniu/php-sdk

  • Ftp

    请先 composer league/flysystem

提供接口

//上传文件
public function put($key, $data);
//获取url
public function url($key, $rule = null);
//重命名
public function rename($key, $newKey);
//删除
public function delete($key);
//获取错误消息
public function error();

使用示例

<?php

require_once __DIR__ . ‘/vendor/autoload.php‘;

//7牛
$config = array(
    ‘accessKey‘ => ‘TOeV-fwwxsssf3s_45tCziKjRD9-bPyXUKjbuX7b‘,
    ‘secretKey‘ => ‘pbHrgwwwp_wpClxeeGrYKLNdEhLd02Jrew3t5h‘,
    ‘bucketName‘ => ‘test‘,
    ‘baseUrl‘ => ‘http://static.pfinal.cn/‘,
    ‘separator‘ => ‘-‘,
);
$qiniu = new \PFinal\Storage\Qiniu($config);
$bool = $qiniu->put(‘test/1.jpg‘, file_get_contents(‘/Users/ethan/Pictures/1.jpg‘));

//原图url
var_dump($qiniu->url(‘test/1.jpg‘));

//小图url 规则: "m"
var_dump($qiniu->url(‘test/1.jpg‘, ‘m‘));

//阿里云OSS

$config = [
    ‘accessKey‘ => ‘your key‘,
    ‘secret‘ => ‘your secret‘,
    ‘endPoint‘ => ‘oss-cn-shanghai.aliyuncs.com‘,
    ‘bucket‘ => ‘your bucket‘,
];
$oss = new \PFinal\Storage\AliOss($config);

$bool = $oss->put(‘test.jpg‘, file_get_contents(‘/Users/ethan/Pictures/1.jpg‘));

//原图url
echo $oss->url(‘test.jpg‘);

//小图url 规则名称: "s"
echo $oss->url(‘test.jpg‘, ‘s‘);

https://github.com/pfinal/storage
时间: 2024-11-08 19:59:16

对文件存储的轻量封装,屏蔽不同云环境api差异,方便开发和部署时随意切换存储环境的相关文章

对 JDBC 做一个轻量封装,待完善。。。

对 JDBC 做一个轻量地封装,顺便复习,熟悉sql,io,util,lang.Reflect等包的使用,泛型的使用,待完善... package com.yli.utils;import java.sql.*;import java.io.*;import java.util.Properties;public class DBConnection { private static String driver=null, url=null, user=null, password=null,

阿里云轻量服务器LAMP镜像部署网站踩过的坑第一期

阿里云的轻量服务器真的很多坑,刚完成3个网站部署在一台轻量服务器的工作,虚拟主机配置文件,php源码解析,mysql.httpd和php不是系统变量等等各种问题:准备一个一个来填坑,在这感谢51CTO讲师段老师的帮助,3年前在他那学的红帽7.0:碰到什么写什么,可能有点水,但是都是实操经验,现在网上大多都是copy,自己也没验证过,还有一些是初学者虚拟机玩配置,对实际操作帮助不大: 今天先说一下轻量服务器的虚拟主机配置文件 碰到新的系统,先查看系统版本,下面是阿里云轻量服务器的版本信息 [[em

阿里云轻量服务器价格及轻量与ECS服务器区别比较

https://yq.aliyun.com/articles/221647 摘要: 阿里云轻量应用服务器价格表及介绍,关于轻量应用服务器和ECS服务器的性能对比 阿里云轻量应用服务器是阿里云新推出的服务器,本文介绍阿里云轻量服务器的价格,已经何为"轻量"?轻量与阿里云ECS服务器有什么区别?轻量性能就一定不如ECS服务器吗? 什么是轻量应用服务器?轻量应用服务器是面向单机应用场景的新一代计算服务,提供精品应用一键部署,支持一站式的域名.网站.安全.运维.应用管理等服务,极大地优化了搭建

轻量对象存储服务——minio

minio Minio是一个非常轻量的对象存储服务. Github: minio 它本身不支持文件的版本管理.如果有这个需求,可以用 s3git 搭配使用. Github: s3git 安装 minio 文档有列出各平台的安装方式.这里只说 docker 的方式. docker-compose.yml version: "3" services: minio: image: minio/minio volumes: - minio-data:/data ports: - "9

OWIN轻量型框架介绍

OWIN轻量型框架介绍 阅读目录 引言 框架的特色 如何启动 各项功能 静态路由的3种写法 伪静态路由的支持 处理Form表单提交的文件 流式处理Post请求的数据 多种请求类型自动识别 响应处理 请求响应上下文 自定义默认处理函数 内置各种便捷函数 复合类型的请求处理 框架的扩展 静态内容的支持 跨域Post的支持 基础类型继承灵活处理 尾声 回到顶部 引言 什么是OWIN,我就不介绍了,请自行搜索,这里主要是介绍自行开发的OWIN框架的特点和用法.由于.NET的web框架都比较庞大,导致性能

编写轻量ajax组件01-对比webform平台上的各种实现方式

前言 Asp.net WebForm 和 Asp.net MVC(简称MVC) 都是基于Asp.net的web开发框架,两者有很大的区别,其中一个就是MVC更加注重http本质,而WebForm试图屏蔽http,为此提供了大量的服务器控件和ViewState机制,让开发人员可以像开发Windows Form应用程序一样,基于事件模型去编程.两者各有优缺点和适用情景,但MVC现在是许多Asp.net开发者的首选. WebForm是建立在Asp.net的基础上的,Asp.net提供了足够的扩展性,我

[iOS]将DataSource分离并构建更轻量的UIViewController

在objccn.io中看到一篇文章,构建更轻量的View Controllers,在此自己实践一下加深理解. 新疆项目,learn--tableview,类前缀为LT,开始我们的实验. 首先需要在StoryBoard中拖拽一个UITableView,在头文件中申明tableView变量并建立连接: 新建ArrayDataSource类,作为TableView的DataSource.目的是将DataSource从原本的ViewController中分离出来: // // ArrayDataSour

oracle从入门到精通复习笔记续集之PL/SQL(轻量版)

复习内容: PL/SQL的基本语法.记录类型.流程控制.游标的使用. 异常处理机制.存储函数/存储过程.触发器. 为方便大家跟着我的笔记练习,为此提供数据库表文件给大家下载:点我下载 为了要有输出的结果,在写PL/SQL程序前都在先运行这一句:set serveroutput on结构:declare--声明变量.类型.游标begin--程序的执行部分(类似于java里的main()方法)exception--针对begin块中出现的异常,提供处理的机制--when...then...--whe

Vue.js:轻量高效的前端组件化方案(转载)

摘要:Vue.js通过简洁的API提供高效的数据绑定和灵活的组件系统.在前端纷繁复杂的生态中,Vue.js有幸受到一定程度的关注,目前在GitHub上已经有5000+的star.本文将从各方面对Vue.js做一个深入的介绍. Vue.js 是我在2014年2月开源的一个前端开发库,通过简洁的 API 提供高效的数据绑定和灵活的组件系统.在前端纷繁复杂的生态中,Vue.js有幸受到一定程度的关注,目前在 GitHub上已经有5000+的star.本文将从各方面对Vue.js做一个深入的介绍. 开发