七牛云对象存储  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));
}
}
?>

  

配置例如:

  1. FTP主机:upload.qiniu.com
  1. FTP帐号:AccessKey 例如:db2N1b4xpqtA7UltwE97feeetgssYNjHFf9k-ZFs
  1. FTP密码:SecretKey 例如:E_1yje34kU6Zq-EVsqgxducdfcdc6nZiLshMpL_O
  1. 远程存储目录:存储空间 bucket 名称 例如:zhimo-yuanzhumuban-cc
  1. 远程访问URL:绑定域名 例如:http://zhimo.yuanzhumuban.cc/

DT添加七牛云对象存储插件功能的更多相关文章

  1. 使用FileZilla Pro S3协议访问七牛云对象存储

    偶然发现FileZilla还有Pro版本,主要是比免费版多了一些协议支持,也偶然发现七牛云支持了S3协议接口,这样刚好弥补了其没有FTP的不足,于是找官方文档,折腾一下,使用FileZilla Pro ...

  2. Gin + 七牛云对象存储

    配置七牛云存储 创建存储空间 拿到密钥 安装七牛云对象存储SDK 推荐go.mod安装 // 将下面地址复制到go.mod,然后执行go mod download github.com/qiniu/a ...

  3. django之集成七牛云对象存储

    Python3 + Django2.0 集成 "七牛云" 对象存储 (SDK文档地址:http://developer.qiniu.com/kodo/api/3928/error- ...

  4. 基于七牛云对象存储,搭建一个自己专属的极简Web图床应用(手摸手的注释讲解核心部分的实现原理)

    一个极简的Web图床应用,支持复制粘贴与拖拽上传图片 1.开发缘由 日常使用Vs Code编写markdown笔记与博客文章时,在文章中插入图片时发现非常不便 使用本地文件编写相对路径---没法直接复 ...

  5. 在ThinkPHP框架(5.0.24)下引入Ueditor并实现向七牛云对象存储上传图片同时将图片信息保存到MySQL数据库,同时实现lazyload懒加载

    这是我花了很多天的时间才得以真正实现的一组需求. 文章后面有完整Demo的GitHub链接. 一. 需求描述 1. 应用是基于ThinkPHP5开发的: 2. 服务器环境是LNMP,PHP版本是7.2 ...

  6. 七牛云对象存储kodo使用体验

    在这里,我使用了七牛云的对象存储Kodo,和阿里云的OSS,还有腾讯云的COS是同样的产品 oss相关术语 包依赖关系解决 unrecognized import path "golang. ...

  7. Wordpress网站添加七牛云cdn

    1.一个搭建好的网站和七牛云账号 2.七牛云进入控制面板 3创建存储空间 4创建好了空间拿七牛给你了测试域名(但只可以使用30天)所以绑定自定义域名(这个必须是备案过的) 5.设置自定义域名(加速域名 ...

  8. 使用python3.7+Vue.js2.0+Django2.0.4异步前端通过api上传文件到七牛云云端存储

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_130 之前一篇文章是通过普通js+tornado来上传七牛云:使用Tornado配合七牛云存储api来异步切分上传文件,本次使用v ...

  9. 七牛云数据存储Demo

    利用七牛云的Python SDK实现文件上传.下载等操作. import os import requests import qiniu from qiniu import BucketManager ...

随机推荐

  1. 《Linux就该这么学》培训笔记_ch08_iptables与firewall防火墙

    <Linux就该这么学>培训笔记_ch08_iptables与firewall防火墙 文章最后会post上书本的笔记照片. 文章主要内容: 防火墙管理工具 iptables firewal ...

  2. Python【每日一问】22

    问: [基础题]:输出 9*9 口诀表 [提高题]:古典问题:有一对兔子,从出生后第 3 个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? ...

  3. HTTP漫谈

    一.说明 1.1 当前背景说明 很多web的书包括web安全的书都会有一章介绍http协议,我就总恶意揣测作者是在凑字数,一般都直接跳过去. 相比TCP/IP这种各字段基于数值代号的协议,http这种 ...

  4. 案例:使用logstash收集游戏服务器日志,输出到kafka消息队列中,然后存入ES

    gamelogs2kafka.conf input { file { codec => plain { charset => "UTF-8" } path => ...

  5. c/c++封装成python包

    参考网址:https://blog.csdn.net/tiankongtiankong01/article/details/80420033 SWIG (Simplified Wrapper and ...

  6. netcore3.0 webapi集成Swagger 5.0,Swagger使用

    Swagger使用 1.描述 Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 Web 服务. 作用: 1.接口的文档在线自动生成. 2.功能测试 本文转自 ...

  7. 让div在body中任意拖动

    HTML代码 <div id="idOuterDiv" class="CsOuterDiv"> </div> CSS代码 body { ...

  8. 自定义HTTP消息拦截

    /// <summary> /// HTTP消息拦截器 /// </summary> public class RequestHandler : DelegatingHandl ...

  9. C#文件操作之把字符串取到文本文件及把文本文件读取到字符串中

    一.把字符串读取到文本文件中 using (FileStream fs = new FileStream(Path, FileMode.OpenOrCreate))//把json读到一个文本中 { S ...

  10. TinyXPath 对于xpath标准的支持测试

    xpath是一种基于xml的查询标准,一般的xml解析工具都具有,有的因为卓越的xpath性能而出名,其匹配查询算法牛逼而又高效,和正则有的一拼.虽然我现在大部分从事前端工作了,但是对于原理性的东西还 ...