PHP上传文件到阿里云OSS,nginx代理访问
1. 阿里云OSS创建存储空间Bucket(读写权限为:公共读)
2. 拿到相关配置
accessKeyId:*********
accessKeySecret:*********
endpoint:********
bucket:********
3.创建 oss.php 上传类 (基于thinkPHP5)
<?php
namespace app\controller;
use OSS\OssClient;
class Oss {
private static $_instance; private function __construct() {
} private function __clone() {
}
/**
* 获取一个OssClient实例
* @return null|OssClient
*/
public static function getInstance() {
if (!(self::$_instance instanceof OssClient)) {
try {
self::$_instance = new OssClient(env('oss.access_key_id'), env('oss.access_key_secret'), env('oss.endpoint'), false);
} catch (OssException $e) {
printf(__FUNCTION__ . "creating OssClient instance: FAILED\n");
printf($e->getMessage() . "\n");
return null;
}
}
return self::$_instance;
}
/**
* 获取bucket
* @return string
*/
public static function getBucketName()
{
return env('oss.bucket');
}
}
3.上传调用
use app\controller\Oss;
.
.
.
public function addShopImg(){
$this->checkParams('shop_id');
$file = $this->request->file('image');
if ($file && ($file->getError() == '') && $file->checkImg() && $file->checkSize(5*1024*1024)) {
$info = $file->move(APP_PATH . '../public/upload/shops/');
//上传图片至阿里云oss
$fileName = 'biz_oss/upload/shops/' . $info->getFilename();
$ossClient = Oss::getInstance();
$bucket = Oss::getBucketName();
$ossClient->uploadFile($bucket, $fileName, $info->getPathname()); $data['shop_img'] = '/upload/shops/'.$info->getFilename();
$data['shop_id'] = $this->params['shop_id'];
$re = db('shopImg')->insert($data);
if($re){
Api::output();
}else{
Api::fail(2, '上传失败');
}
} else {
Api::fail(1, '图片不合规');
}
}
4.访问 oss域名地址 不可在浏览器直接访问 可用nginx 代理
配置中加入:
location ^~ /biz_oss {
proxy_pass http://xxxxxx.oss-cn-shenzhen-internal.aliyuncs.com;
}
重启nginx
nginx配置的域名(server_name)后接上 /biz_oss 如:kwdst.3ce.com/biz_oss 即可指向oss上资源存储的空间
如下 $oss_url = kwdst.3ce.com/biz_oss
<div style="text-align:center; width:100%; height:100%;">
<img src="{$oss_url}{$img.shop_img}" style="vertical-align:middle;" />
</div>
如此浏览器中html 即可访问加载 oss上图片资源。
PHP上传文件到阿里云OSS,nginx代理访问的更多相关文章
- 关于富文本编辑器ueditor(jsp版)上传文件到阿里云OSS的简单实例,适合新手
关于富文本编辑器ueditor(jsp版)上传文件到阿里云OSS的简单实例,适合新手 本人菜鸟一枚,最近公司有需求要用到富文本编辑器,我选择的是百度的ueditor富文本编辑器,闲话不多说,进入正 ...
- PHP 上传文件至阿里云OSS对象存储
简述 1.阿里云开通对象存储服务 OSS 并创建Bucket 2.下载PHP SDK至框架扩展目录,点我下载 3.码上code 阿里云操作 开通对象存储服务 OSS 创建 Bucket 配置Acces ...
- vue + elementUi + upLoadIamge组件 上传文件到阿里云oss
<template> <div class="upLoadIamge"> <el-upload action="https://jsonpl ...
- OSS上传文件到阿里云
最近做项目,需要上传文件,因为上传到项目路径下,感觉有时候也挺不方便的,就试了一下上传文件到阿里云oss上去了, oss的使用网上有很多介绍,都是去配置一下需要的数据,然后直接调用他的api就可以了. ...
- angulaijs中的ng-upload-file与阿里云oss服务的结合,实现在浏览器端上传文件到阿里云(速度可以达到1.5M)
2015-10-26 angularjs结合aliyun浏览器端oos文件上传加临时身份验证例子 在服务端获取sts 源码: public class StsServiceSample { // 目前 ...
- 使用axios上传文件到阿里云对象文件存储服务器oss
背景 OSS可用于图片.音视频.日志等海量文件的存储.各种终端设备.Web网站程序.移动应用可以直接向OSS写入或读取数据.OSS支持流式写入和文件写入两种方式.使用阿里云oss做文件存储的时候,不可 ...
- 如何把base64格式的图片上传到到阿里云oss c#版
今天碰到需要把canvas上的的图片转存到阿里云oss,于是百度了半天,一个能打的答案都没有.怒了,自己搞起. 代码超级简单,需要先引入nuget 中啊里云的oss api 1 byte[] arr ...
- Vue上传通过“服务端签名后直传”上传文件到阿里云 报错 400 Bad Request
我报错的原因是 formData.append('file', file) 放在签名前面了 解决办法 formData.append('file', file) 一定在最后 /** * 上传文件到 o ...
- Base64格式上传文件至阿里云(java)
Controller @PostMapping("/save") public R save(@RequestBody ShareEntity share){ OSSClient ...
随机推荐
- Vue之路由跳转 传参 aixos 和cookie
一.路由跳转 1.1 项目的初始化 vue create m-proj >>>创建vue项目 精简vue项目的 views 视图 About(基本是删除的) Home.(可以 ...
- Apache 的 http-default.conf 详解
##Apache 默认设置文件 Timeout 300 #设置服务器在断定请求失败前等待的秒数.默认值 300 KeepAlive Off #设置是否启用 HTTP 持久链接,On ...
- python面向对象--元类
一个类没有声明自己的元类,默认他的元类就是type,除了使用内置元类type,我们也可以通过继承type来自定义元类,然后使用metaclass关键字参数为一个类指定元类 class Foo: def ...
- C#基础知识之Dynamic类型
Dynamic类型是C#4.0中引入的新类型,它允许其操作掠过编译器类型检查,而在运行时处理. 编程语言有时可以划分为静态类型化语言和动态类型化语言.C#和Java经常被认为是静态化类型的语言,而Py ...
- Git回滚到指定的commit
查看历史commint $ git log (可以记下sha码) 回退命令: $ git reset --hard HEAD^ 回退到上个版本$ git reset --hard HEAD~3 回退到 ...
- linux软件操作
操作 命令 ubuntu 源操作 源配置 https://www.cnblogs.com/wenlin-gk/p/11146228.html 源更新 sudo apt-get update 查看源中包 ...
- CSS颜色和长度单位
颜色 如果我们相给页面设置颜色可以采用多种方法进行设置: 一.命名颜色 假设在设置页面的颜色时觉得一部分很小的颜色集中就足够了,就可以直接给定颜色的名称.CSS称这些有名称的颜色为命名颜色. 命名颜色 ...
- mysql Update语句 语法
mysql Update语句 语法 作用:用于修改表中的数据.广州大理石机械构件 语法:UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值 mysql Update语句 示例 ...
- 微信小程序 上拉刷新/下拉加载
小程序项目中上拉刷新下拉加载是比较常见的需求,官方文档也提供了相当友好的API,但是因为API隐藏的比较深,文档描述也比较模糊所以也折腾了一番(官方文档),在此记录一下使用方式 onPullDownR ...
- 【rust】Rust变量绑定(3)
Rust 是一个静态类型语言,这意味着我们需要先确定我们需要的类型. 什么是变量绑定? 将一些值绑定到一个名字上,这样可以在之后使用他们. 如何声明一个绑定? 使用 let 关键字: fn main( ...