DT添加七牛云对象存储插件功能
七牛云对象存储 1.注意客户购买的空间的存储区域,区域不同对应的上传域名不同 destoon 七牛云上传文件 用下面源码替换include/ftp.class.php 文件代码
<?php
defined('IN_DESTOON') or exit('Access Denied');
class dftp {
var $connected = 0;
var $ak;
var $sk;
var $bk;
function __construct($ftphost, $ftpuser, $ftppass, $ftpport = 21, $root = '/', $pasv = 0, $ssl = 0) {
$this->connected = 1;
$this->ak = $ftpuser;
$this->sk = $ftppass;
$this->bk = $root;
}
function dftp($ftphost, $ftpuser, $ftppass, $ftpport = 21, $root = '/', $pasv = 0, $ssl = 0) {
$this->__construct($ftphost, $ftpuser, $ftppass, $ftpport, $root, $pasv, $ssl);
}
function dftp_delete($file) {
$key = $file;
$entry = $this->bk.':'.$key;
$encodedEntryURI = $this->dftp_encode($entry);
$signingStr = "/delete/".$encodedEntryURI."\n";
$sign = hash_hmac('sha1', $signingStr, $this->sk, true);
$encodedSign = $this->dftp_encode($sign);
$accessToken = $this->ak.':'.$encodedSign;
$headers = array();
$headers[] = 'Authorization: QBox '.$accessToken;
$cur = curl_init('http://rs.qiniu.com/delete/'.$encodedEntryURI);
curl_setopt($cur, CURLOPT_POST, 1);
curl_setopt($cur, CURLOPT_POSTFIELDS, '');
curl_setopt($cur, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($cur, CURLOPT_HEADER, 0);
curl_setopt($cur, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($cur, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($cur, CURLOPT_HTTPHEADER, $headers);
$rec = curl_exec($cur);
curl_close($cur);
}
function dftp_put($local, $remote = '') {
global $DT_TIME;
$remote or $remote = $local;
$local = DT_ROOT.'/'.$local;
$key = $remote;
$P = array();
$P['scope'] = $this->bk.':'.$key;
$P['deadline'] = $DT_TIME + 3600;
$putPolicy = json_encode($P);
$encodedPutPolicy = $this->dftp_encode($putPolicy);
$sign = hash_hmac('sha1', $encodedPutPolicy, $this->sk, true);
$encodedSign = $this->dftp_encode($sign);
$uploadToken = $this->ak.':'.$encodedSign.':'.$encodedPutPolicy;
$headers = array();
$headers[] = 'Expect: ';
$par = array();
$par['key'] = $key;
$par['token'] = $uploadToken;
$par['file'] = '@'.$local;
$cur = curl_init('http://upload.qiniu.com/');
curl_setopt($cur, CURLOPT_POST, 1);
curl_setopt($cur, CURLOPT_POSTFIELDS, $par);
curl_setopt($cur, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($cur, CURLOPT_HEADER, 0);
curl_setopt($cur, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($cur, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($cur, CURLOPT_HTTPHEADER, $headers);
$rec = curl_exec($cur);
curl_close($cur);
if(strpos($rec, 'key') !== false) {
$arr = json_decode($rec, true);
if($arr['key'] == $key) return true;
}
return false;
}
function dftp_chdir() {
if(!function_exists('hash_hmac')) return false;
if(!function_exists('curl_init')) return false;
return true;
}
function dftp_encode($str) {
return str_replace(array('+', '/'), array('-', '_'), base64_encode($str));
}
}
?>

配置例如:
- FTP主机:upload.qiniu.com
- FTP帐号:AccessKey 例如:db2N1b4xpqtA7UltwE97feeetgssYNjHFf9k-ZFs
- FTP密码:SecretKey 例如:E_1yje34kU6Zq-EVsqgxducdfcdc6nZiLshMpL_O
- 远程存储目录:存储空间 bucket 名称 例如:zhimo-yuanzhumuban-cc
- 远程访问URL:绑定域名 例如:http://zhimo.yuanzhumuban.cc/
DT添加七牛云对象存储插件功能的更多相关文章
- 使用FileZilla Pro S3协议访问七牛云对象存储
偶然发现FileZilla还有Pro版本,主要是比免费版多了一些协议支持,也偶然发现七牛云支持了S3协议接口,这样刚好弥补了其没有FTP的不足,于是找官方文档,折腾一下,使用FileZilla Pro ...
- Gin + 七牛云对象存储
配置七牛云存储 创建存储空间 拿到密钥 安装七牛云对象存储SDK 推荐go.mod安装 // 将下面地址复制到go.mod,然后执行go mod download github.com/qiniu/a ...
- django之集成七牛云对象存储
Python3 + Django2.0 集成 "七牛云" 对象存储 (SDK文档地址:http://developer.qiniu.com/kodo/api/3928/error- ...
- 基于七牛云对象存储,搭建一个自己专属的极简Web图床应用(手摸手的注释讲解核心部分的实现原理)
一个极简的Web图床应用,支持复制粘贴与拖拽上传图片 1.开发缘由 日常使用Vs Code编写markdown笔记与博客文章时,在文章中插入图片时发现非常不便 使用本地文件编写相对路径---没法直接复 ...
- 在ThinkPHP框架(5.0.24)下引入Ueditor并实现向七牛云对象存储上传图片同时将图片信息保存到MySQL数据库,同时实现lazyload懒加载
这是我花了很多天的时间才得以真正实现的一组需求. 文章后面有完整Demo的GitHub链接. 一. 需求描述 1. 应用是基于ThinkPHP5开发的: 2. 服务器环境是LNMP,PHP版本是7.2 ...
- 七牛云对象存储kodo使用体验
在这里,我使用了七牛云的对象存储Kodo,和阿里云的OSS,还有腾讯云的COS是同样的产品 oss相关术语 包依赖关系解决 unrecognized import path "golang. ...
- Wordpress网站添加七牛云cdn
1.一个搭建好的网站和七牛云账号 2.七牛云进入控制面板 3创建存储空间 4创建好了空间拿七牛给你了测试域名(但只可以使用30天)所以绑定自定义域名(这个必须是备案过的) 5.设置自定义域名(加速域名 ...
- 使用python3.7+Vue.js2.0+Django2.0.4异步前端通过api上传文件到七牛云云端存储
原文转载自「刘悦的技术博客」https://v3u.cn/a_id_130 之前一篇文章是通过普通js+tornado来上传七牛云:使用Tornado配合七牛云存储api来异步切分上传文件,本次使用v ...
- 七牛云数据存储Demo
利用七牛云的Python SDK实现文件上传.下载等操作. import os import requests import qiniu from qiniu import BucketManager ...
随机推荐
- jiagu-工具使用
比较好的一套处理工具吧,感谢作者,原文地址:https://github.com/ownthink/Jiagu 练习一下使用 """ Funciton: jiagu测试 ...
- Spring JdbcTemplate使用别名传参(NamedParameterJdbcTemplate)
原文地址http://www.voidcn.com/article/p-cwqegtpg-hx.html 在使用JdbcTemplate时,一般传参都是用的?来绑定参数,但是对于某种情况就不适用了,例 ...
- python入门之数据类型及内置方法
目录 一.题记 二.整形int 2.1 用途 2.2 定义方式 2.3 常用方法 2.3.1 进制之间的转换 2.3.2 数据类型转换 3 类型总结 三.浮点型float 3.1 用途 3.2 定义方 ...
- Docker中nginx+tomcat实现负载均衡
拉取tomcat镜像 docker pull tomcat 运行两个tomcat容器 docker run -d -p 8088:8080 --name tomcat8088 tomcat docke ...
- 红米note7几个问题处理
1.听筒声音很小,外放正常,试了很多种方法,最终可行的是吧听筒网灰尘弄一下. 2.SAICLink车机互联:需要打开USB调试.USB安装.USB调试(安全设置)(不开启这个的话会连接后就断开).默认 ...
- Android -- SEGV_MAPERR,SEGV_ACCERR
Per siginfo.h: SEGV_MAPERR means you tried to access an address that doesn’t map to anything. SEGV_A ...
- sqlserver读取日志以及复制
首选,在事务日志中,到底有多少是需要复制的?使用以下命令,可以确定事务日志中被标志为复制的命令有多少. USE test GO SELECT count(*) FROM ::fn_dblog(NULL ...
- C#基础语法,快速上収C#
C#代码基础语法 对新手的帮助很大,可以尝试多看看然后在敲敲 // 单行注释以 // 开始 /* 多行注释是这样的 */ /// <summary> /// XML文档注释 /// < ...
- Managing C++ Objects: 管理C++对象 —— 一些建议准则
原文链接: Managing C++ Objects Here are some guidelines I have found useful for writing C++ classes. The ...
- Java基础篇(中)
4.Java 关键字 下面列出了 Java 关键字.这些保留字不能用于常量.变量.和任何标识符的名称. 类别 关键字 说明 访问控制 private 私有的 protected 受保护的 public ...