当前位置:首页 » 存储配置 » 七牛云存储客户端

七牛云存储客户端

发布时间: 2023-01-17 16:01:34

⑴ 七牛云存储怎么布署到服务器

"在网络覆盖的范围内手机、平板、电脑可以随时的实现文件同步

"部门之间可以安全的文件分享

"所有人对文件的操作行为均可以被记录

"登录身份认证机制与企业现有管理机制相结合

"存放于数据中心的文件具备高强度的加密

正是从这种需求出发,推动了厂商对企业私有云存储的技术研发,目前市场上已经有部分成熟的产品方案得到应用,笔者刚刚拿到VEsystem 推出的VECloud 2.0最新版,目前正在测试中;在此谨以VECloud 2.0(和信云存储)为例,向大家讲解企业私有云存储的快捷部署方法,供企业信息管理人员在方案选择时参考所有。

抽象来看与网络云网盘一样,部署好的私有云存储是一个可以通过浏览器输入网址或IP地址直接访问的网站。那么除服务器基础平台的建设之后,我们需要就是搭建一套Web Server 的发布平台,最常见的WEB发布平台应该是IIS(微软服务器版系统中自身提供) 、以及Apache ,根据不同网站开发语言的需要还需要配置脚本解释与数据库支持;比如大家经常提到的ASP + msSQL 、php + mySQL 等;

2

VECloud 2.0 对WEB平台要求是:PHP 5.10 / mySQL 5.5

以往在Windows平台手工搭建AMP环境(Apache MySQL PHP)是比较复杂的,幸好现在已经有相应的一键式集成包,可以帮助我们快速完成这项工作。笔者比较习惯使用的是EasyPHP,本次部署所采用的版本是12.0 ;EasyPHP 安装非常简单几乎你只用点下一步即可以完成(对AMP 环境的搭建比较熟的朋友可以越过章节)。

安装结束后会自动打开默认浏览器呈现当前AMP配置运行信息,如上图我们可以看到APACHE 2.42 / MYSQL 5.5.2 / PHP 5.4.4 即已经有运行中,有关EasyPHP 12.0 的详细调试使用可以参考官方教程或相关文章,作为服务运行的支撑平台,其不属于云存储的技术讨论范围后面的章节中不再重复提及。

接下来我将VECloud2.0 的WEB站点的发布包,解压到WWW 目录中,然后通过浏览器访问本机IP 如127.0.0.1??即可以打开这个站点;站点首次被打开时会有一个安装向导完成初始的部署工作。如下图:

点击"现在就开始"…

接下来的页面中会显示出当前WEB服务器的环境配置信息,以及和信云存储对环境基本要求自检结果,为了保障功能的全面正常执行,建议按照提示信息的要求,调整服务器的配置信息以达到推荐标准,如下图:

在默认情况下 PHP 扩展中的PHP_EXIF 、PHP_GETTEXT 、PHP_LDAP 、PHP_OPENSSL 并未消开启,最大文件限制默认为2M ,这里会建议我们开启上述扩展并调大文件限制。

这都可以通过修改PHP.INI 配置文件来实现,PHP.INI 文件默认存放在apache 目录中,可以用记事本打开

可以通过查找方式找到PHP_EXIF 、PHP_GETTEXT 、PHP_LDAP 、PHP_OPENSSL 这几项PHPExt 所在位置,注意行前一个" ; "(分号),分号表示此行被注释,只需要将分号去掉即可,(如上图)如果是手工搭建的AMP 环境需要确定对应DLL 文件已经安装注册。

同时找到upload_max_filesize = 项,将最大上传文件的大小设定到一个合适的值。如上图

重新启动Apache 服务,刷新页面后我们可以看到自检测结果已经发生变化,目前我们WEB服务端的配置已经完全符合推荐要求。

点击"下一步"继续…

接下来的配置是关于MYSQL数据库的参数,我们需要创建一个数据库管理员以及对应的数据库、表名前缀;

可以通过PHPMYADMIN(MYSQL的在线管理工具,如果是通过EASYPHP安装则已经自带)来方便的创建用户并同时创建与用户名同名的数据库;如下图:

添加 [ 用户 ] / [ 添加用户 ], 输入用户名VECLOUD 、主机:127.0.0.1(如无分布部署或有额外的名称解析,应采用本机IP), 勾选"创建与用户同名的数据库并授予所有权限"

通过上述操作我们就为云存储服务端创建了专用的数据库管理用户及同名的数据库。

返回到云存储的安装界面,注意最后一项是关于"文件存储路径"的设置,在此处可以设定一个目标路径,当云存储服务上线之后,用户上传分享的文件都将保存在这个路径之下,因为目标路径建议采用专业存储阵列或设备,确保并发速度与数据安全。

接下来的页面中可对云存储的管理用户与密码进行设置,提示:管理员将可以在后台管理所有用户的信息以及系统的相关参数设置,一定要管理好该用户并设置高强度的密码,防止被猜测破解后登录。

点击"下一步"继续

至此,"和信云存储"的安装已经完成,可以试一下在浏览器中再次打开127.0.0.1 访问

这一次打开的不再是安装向导,一个真正架设在内网中的私有云存储用户登录界面呈现在眼前,VECloud 同时提供了Windows / Android / IPhone 、IPAD 的客户端,对此私有云存储的访问方式不限于网页登录,也可以随时用移动设备登录分享、同步自己的文件。

天互数据 为您解答,希望能帮到你

⑵ 初次使用七牛云存储,请问这是什么问题

使用七牛云存储解决ios7.1的app部署问题

一.问题描述

开发完ios版本的app。需要将.ipa文件和.plist文件打包上传,供用户下载,在线安装。用户安装过程简单描述如下:

首先通过手机浏览器safari或者扫描二维码获取到下载.plist的地址。然后浏览器会自动跳转到这个地址,下载、读取.plist。(用户跳转的地址是.plist的下载地址。)这个过程,显然使用http协议来下载.plist文件。最后,iphone通过读取.plist文件中配置的.ipa下载地址,来安装.ipa文件,来完成ios版本的app。

举例,网站首页中,下载.plist的代码:

<ahref="itms-services://?action=download-manifest&url=http://www.ekwing.com/ekwing.plist"class="mobile-ios"></a>

但是,苹果从ios7.1开始,用户安装app,需要使用https协议,来下载plist文件。也就说,在安装app的第一步,下载.plist文件,需要使用https协议。https协议如下:

这里不详细描述https协议。HTTPS的信任继承基于预先安装在浏览器中的证书颁发机构(如VeriSign、Microsoft等)(意即“我信任证书颁发机构告诉我应该信任的”)。因此,一个到某网站的HTTPS连接可被信任,当且仅当:

1. 用户相信他们的浏览器正确实现了HTTPS且安装了正确的证书颁发机构;

2. 用户相信证书颁发机构仅信任合法的网站;

3. 被访问的网站提供了一个有效的证书,意即,它是由一个被信任的证书颁发机构签发的(大部分浏览器会对无效的证书发出警告);

4. 该证书正确地验证了被访问的网站(如,访问https://example时收到了给“Example Inc.”而不是其它组织的证书);

5. 或者互联网上相关的节点是值得信任的,或者用户相信本协议的加密层(TLS或SSL)不能被窃听者破坏。

简单描述,用户使用https来下载.plist文件。则需要网站支持https协议。支持https协议,除了服务端做一些配置外,还需要申请一个数据签名证书。这个签名证书是由签发机构签发的。不能自己配置生成。而申请签名证书需要一段时间。而我们的目的只是希望能够让我们的app被用户正常下载安装即可。

二.问题分析

解决该问题,就2个方法:

1.自己网站服务上配置https服务,并购买数字签名证书以保证每种类型及其不同版本的浏览器能够安装了证书颁发机构颁发的,我们购买的数据签名证书。时间开销7天左右。

2.将app文件托管到支持https协议的第三方服务器上。

三.解决问题

使用七牛云存储,可以快速,免费解决这个问题。只需要到http://www.qiniu.com/注册一个账号。然后,开通https协议的域名即可。最后将.plist和.ipa文件上传到七牛云存储上即可。操作过程,非常简单。只要注意几点:

1. 开通一个http协议的域名,和一个https协议的域名。

如上图。后缀名是.qiniudn.com的是支持http协议的域名。后缀名是.qbox.me的是支持https协议的域名。上传.plist、.ipa到七牛云存储。

2. 修改下载.plist文件的地址,修改.plist文件内容。

网站首页,下载.plist地址改成上传到七牛云存储上的支持https协议(域名后缀名是.qbox.me)的下载链接地址。

<ahref="itms-services://?action=download-manifest&url=https://dn-ekwing.qbox.me/ekwing.plist"class="mobile-ios"></a>

3. 将.plist文件内容中,.ipa的下载地址,改成七牛云存储上的支持http协议(后缀名是.qiniudn.com)

<string>http://ekwing.qiniudn.com/ekwing.ipa</string>

4. 总结,.plist的下载用https协议,而.ipa的下载用http协议即可。修改完后,就可应用ios6、ios7、ios7.1进行测试了。

四. 感谢七牛云存储

感谢七牛运存储提供免费服务。不过,目前防盗链还不能用。希望能够加上防盗链功能。

五. 因ios7.1安装app,需要用https协议而提示的错误

无法安装应用程序因为证书无效

<Warning>:[ERROR]: Cannot load non-https manifest URL:http://192.168.1.22/ekwing.plist

<Warning>:Could not load download manifest with underlying error: ErrorDomain=SSErrorDomain Code=128 "无法连接" UserInfo=0x1669d990 {NSLocalizedDescription=无法连接}

<Warning>: NSURLConnection/CFURLConnection HTTP loadfailed (kCFStreamErrorDomainSSL, -9813)

<Warning>: Could not load download manifest withunderlying error: Error Domain=NSURLErrorDomain Code=-1202 "无法连接到商店" UserInfo=0x166bc640{NSLocalizedDescription=无法连接到商店,NSLocalizedRecoverySuggestion=您仍要连接此服务器吗?,NSLocalizedFailureReason=无法建立安全连接。请检查“日期与时间”设置。,NSErrorFailingURLStringKey=https://192.168.1.22/ekwing.plist,NSUnderlyingError=0x165b37e0 "此服务器的证书无效。您可能正在连接到一个伪装成“192.168.1.22”的服务器,这会威胁到您的机密信息的安全。",=<SecTrustRef:0x166b83e0>,NSErrorFailingURLKey=https://192.168.1.22/ekwing.plist}

⑶ 七牛云存储的关于七牛

七牛,是一家云存储初创企业,由国内存储行业的领军人物之一许式伟于2011年创立。团队核心成员主要来自盛大、金山、网龙、惠普等知名互联网公司,核心成员之间已合作多年。
七牛采用全分布式存储架构,可以解决单一数据中心架构可能存在的风险。和传统的云存储服务不同,七牛还增加了上传下载全网加速以及图片、音视频的处理服务。
七牛云存储主要托管企业的静态资源,为企业提供一站式在线数据托管、上传下载全网加速、以及数据云端处理服务。主要做静态文件,包括富媒体一体化解决方案,解决富媒体存储、上传下载加速、数据处理,包括图片处理、音视频处理,比如说做缩略图,打水印。
此外,七牛还提供了镜像存储、客户端直传以及断点续上传等功能,方便开发者的使用。

⑷ 如何在WordPress中使用七牛云存储

七牛云存储可以方便的将网站的图片等数据镜像到七牛云存储的空间,直接从云端将数据返回给用户。这样可以大大节省网站的空间,提升网站的访问速度。真正显示一键实现WordPress博客静态文件CDN加速。下面主要介绍一下WordPress中七牛云存储插件的使用。
工具/原料
WordPress中七牛云存储的插件
方法/步骤
首先需要申请七牛云存储的账号,申请好后,点击创建空间,选择空间类型为公开空间,提交。

配置空间,点击一键加速网站。镜像源填写自己网站域名。确认加速。

接下来在WordPress后台选择添加我爱水煮鱼的“WPJAM 七牛镜像存储”插件并启用。进入插件的基本设置页面。
七牛绑定的域名:就是我们上面获取的:。
*注意:如果博客安装的是在子目录下,比如
,这里
也需要带上子目录
/blog。比如:/blog
七牛空间名:设置为我们一开始设置的wptest
ACCESS
KEY 和SCRET
KEY:可以在七牛后台>账户设置>密钥页面获取。
其他设置默认即可。

⑸ 七牛FOP有什么优势

七牛FOP 就是七牛的数据处理,例如在一个查看图片的场景中,七牛云客户端可以上传一张高精度的图片,然后在查看图片的时候根据屏幕规格生成一张大小适宜的缩略图,例如为 iPhone生成一张 960x640 大小的缩略图。这样既可以明显降低网络流量,而且可以提高图片显示速度,还能降低移动设备的内存占用,同时还具备着三个优点,可以就近无缝对接对象存储服务,数据存储在哪里就在哪里计算的原则,无需任何复杂的配置就可以马上使用七牛提供的数据处理单元;可以处理单元微服务化以及管道机制的引入,大 大增加了业务实现的自由度;可以实时任务与异步任务结合,让用户的各种业务场景都得以灵活实现。

⑹ 如何利用七牛免费云存储平台做微信游戏

一,登录成功后,中间和右上角点击+新建空间

二,建立空间填写名称,并设置为公开访问

三,点击内容管理,并点击右上角的“上传”按钮

四,七牛不支持直接在网页上批量上传,不能分目录分组管理文件(如果需要区分文件目录路径,就添加文件前缀)

五,因为这些原因,如果文件较多的话,直接在七牛网页上管理文件是很不方便的,所以建立大家用七牛的客户端工具,在网页的右下角。

六,没有命令行操作经验的,win系统建议用qrsbox。

七,下载QRSBox后,解压文件。进入解压后的目录,双击qrsbox.exe,弹出软件界面:

其中,access_key 和 secret_key 在七牛云存储平台上点击左上角的房子图标进入首页,再点击账号设置,在左边的菜单导航上选择密匙(查看AccessKey/SecretKey),分别填入上图的对应输入框中即可。
同步源目录:就是本地的文件路径(例如D:\tianxing)表示同步D盘的tianxing文件夹到七牛空间上。
空间名:就是步骤二中,你创建的七牛空间。设置好后,D:\tianxing文件夹内的所有文件会自动同步到你的七牛云空间上。

八,七牛系统分配的文件URL和其他相关设置在当前空间的空间设置上可以查看。

到此,七牛云的使用方法就是这样了。

⑺ 关于七牛云存储自定义URL的问题

近段时间将使用七牛云存储来存放用户上传的数据,客户端通过七牛的js-sdk与七牛交互,服务端C#实现了七牛相关的接口。在这过程中多多少少遇到点问题,在这里总结一下。原文: 使用七牛云存储的一些经验总结
599错误处理
如果在与七牛的交互中出现http状态码为599的错误,一句话,不要犹豫,直接联系七牛技术支持 。七牛的文档也在很多地方提到这个错误,都是指导大家去联系技术支持的。笔者是在分块上传后的 mkfile 调用时出现的,联系技术支持后,说是调整了一下,让我重试。后来就好了...
分块上传无法从回调中获得文件的原始名
简单上传采用的是multipart/form-data方式上传,七牛服务端能够从请求中获得文件的原始名,并支持使用魔法变量 $(fname) 回调业务服务器。不过当使用分片上传的时候情况有所不同。分片上传需要在最后调用 mkfile ,来将分片拼接起来。但是, mkfile 接口支持普通的请求,并没有附带文件名,所以七牛也就无法获得文件名,此时从 $(fname) 中是取不到文件名的。这个问题我也向七牛技术支持提交了问题,得到的结果是使用自定义变量 mkfile 支持将自定义变量放在url中,回调的时候自定义变量可以传递给业务服务器。
慎用图片预处理
七牛云支持很多对文件的预处理,其中最常用的应该就是图片预处理了,可以对图片的大小做变换等。七牛推荐使用GET的方式直接指定图片处理结果的url,像这样:
http://qiniuphotos.qiniudn.com/gogopher.jpg?imageView2/1/w/200/h/200

处理后的图片会自动缓存,用户不用关心,只要每次访问都用这个url就行了。然而,笔者在开始的时候,为了保持与其他文件形式统一的处理方法,对图片使用了预处理(因为视频什么的只能预处理),即在token中指定了预处理。此时问题出现了,从后台的日志看到,图片的预处理通知回调竟然比正常的上传成功回调还要快!这就导致预处理结果到来之前,我的业务服务器的数据库中还没有这个图片,无法保存预处理结果了。所以 推荐还是使用url直接处理,对图片要慎用预处理
视频文件无法快进播放
通常用户在观看视频的时候都会根据自己的喜好,快速将视频定位到指定的时间播放。实现这个功能,需要视频本身有关键帧信息、服务端需要支持关键帧播放请求,在 这篇文章 中有详细讨论。
但是笔者发现,在使用七牛云转化后的视频,这样做是无效的。于是咨询技术支持,得到的答案是:转化的文件是具有关键帧的,但七牛使用CDN加速,所以关键帧请求需要CDN的支持,如果想要用这个功能的话,需要单独联系销售或技术支持在CDN上配置,而且时间比较长。笔者联系了销售和技术支持,说是帮我配置,但到现在还没有搞定,因为最近这个也不是特别重要,所以也没有跟下去。
Callback校验
这是可选的一个步骤。由于七牛云会在上传完成之后回调业务服务器,所以理论上说业务服务器需要校验这个回调的合理性。原理在七牛的 文档 中有,需要用到 HMAC-SHA1 签名函数。但是七牛的sdk中没有提供直接的方式来做校验,在研读文档、多次失败和查看sdk源码后,笔者终于校验成功了。关键的分歧在于,文档中的这句话:

获取明文:data = Request.URL.Path +”\n” +Request.Body

这里的 Request.URL.Path 是否包含Querystring?答案是包含的!下面是笔者C#服务端的校验代码,使用的是ASP.NET Web Api:
```C#
byte[] key = System.Text.Encoding.UTF8.GetBytes(Qiniu.Conf.Config.SECRET_KEY);
using (HMACSHA1 hmac = new HMACSHA1(key))
{
var t = filterContext.Request.Content.ReadAsStringAsync();
t.Wait();
string rawbody = t.Result;
log.DebugFormat("request's rawbody : {0}", rawbody);
string text = filterContext.Request.RequestUri.PathAndQuery + "\n" + rawbody;
log.DebugFormat("PathAndQuery + \n + rawbody : {0}", text);
byte[] digest = hmac.ComputeHash(System.Text.Encoding.UTF8.GetBytes(text));
string computed = Qiniu.Util.Base64URLSafe.Encode(digest);
log.DebugFormat("Computed hash after base64 : {0}", computed);
IEnumerable<string> auths;
if (filterContext.Request.Headers.TryGetValues("Authorization", out auths) && auths.Count() == 1)
{
string auth = auths.First();
log.DebugFormat("Authorization in header : {0}", auth);
if (auth.StartsWith("QBox "))
{
var arr = auth.Substring(5).Split(':');
if (arr.Length == 2)
{
if (arr[1] != computed)
{
log.ErrorFormat("Authorization failed. Since auth from header {0} not equals computed {1}", arr[1], computed);
}
else
{
log.Debug("Authorization success.");
//only pass can be return
return;
}
}
else
{
log.Error("Callback Authorization's format is invalid, can not find two part after split by ':'.");
}
}
else
{
log.Error("Callback Authorization's format is invalid, missing leading 'QBox '.");
}
}
else
{
log.Error("The request from qiniu callback is missing 'Authorization'");
}

filterContext.Response = filterContext.Request.CreateResponse(System.Net.HttpStatusCode.Forbidden);

}

如下几个注意点:

- 明文应当是请求的path+querystring部分和rawbody
- 对于.NET而言,明文和key都需要用UTF-8编码变换成字节才能进行签名。而php中的hash_hmac函数完全不用这么复杂...
- 签名的结果再用base64的url安全的方式编码,再与请求的http头部的Authorization比较

建议官方在文档中加入一些相对底层一些的编程语言的实现,php太高端了...

## js-sdk实现略显粗糙 ##

在使用过程中,我发现[官方的js-sdk](https://github.com/qiniupd/qiniu-js-sdk/)有几个我觉得不好的地方:

**不能为每个文件获取UpToken**

试想,在文件上传过程中有获取UpToken是必须的,而且UpToken又需要包含预处理指令,不同的文件显然需要不同的UpToken,而在js-sdk的实现中,只在初始化这个上传组件对象的时候请求一次上传凭证,后面所有的上传都需要使用这个预先得到的UpToken:

```javascript
uploader.bind('Init', function(up, params) {
getUpToken();
});

于是我修改了这部分,在 BeforeUpload 事件中请求UpToken。建议官方考虑更改这个地方
只能实现分片上传,无法断点续传
js-sdk的实现在分片上传的实现上,是很简单的,不仅没有使用分片,而是分块(一块4m,调用mkblk),而且没有实现持久化ctx,或者类似的回调或接口。4m分块这个问题还可以不追究,没有实现持久化ctx就说不过去了,不持久化怎么实现断点续传撒?!就算不实现,也应该给出回调的入口,让调用者来实现持久化,而我实在无法找到这个'空子'可钻,只能直接在源码上改动了。
没有复用流行类库的东西
这个其实算不上问题,因为作为一个不依赖jquery的sdk,当然不能使用jquery现成的东西,比如ajax。不依赖jquery就算了,依赖plupload是几个意思嘛,还依赖全局对象...于是最后,我干脆自己将sdk改成了Backbone的类,将不要的东西统统去掉,使用jquery和underscore简化代码了...

⑻ 如何在WordPress中使用七牛云存储

首先需要申请七牛云存储的账号,申请好后,点击创建空间,选择空间类型为公开空间,提交。

配置空间,点击一键加速网站。镜像源填写自己网站域名。确认加速。

接下来在WordPress后台选择添加我爱水煮鱼的“WPJAM 七牛镜像存储”插件并启用。进入插件的基本设置页面。
七牛绑定的域名:就是我们上面获取的:http://wptest.qiniudn.com。
*注意:如果博客安装的是在子目录下,比如
http://www.xxx.com/blog,这里
也需要带上子目录
/blog。比如:http://wptest.qiniudn.com/blog
七牛空间名:设置为我们一开始设置的wptest
ACCESS
KEY 和SCRET
KEY:可以在七牛后台>账户设置>密钥页面获取。

其他设置默认即可。

⑼ 七牛云存储的音频水印怎么加php版本的

此 SDK 适用于 PHP 5.1.0 及其以上版本。基于 七牛云存储官方API 构建。使用此 SDK 构建您的网络应用程序,能让您以非常便捷地方式将数据安全地存储到七牛云存储上。无论您的网络应用是一个网站程序,还是包括从云端(服务端程序)到终端(手持设备应用)的架构的服务或应用,通过七牛云存储及其 SDK,都能让您应用程序的终端用户高速上传和下载,同时也让您的服务端更加轻盈。
SDK源码地址:https://github.com/qiniu/php-sdk/tags
应用接入
获取Access Key 和 Secret Key
资源管理接口
1 查看单个文件属性信息
2 复制单个文件
3 移动单个文件
4 删除单个文件
上传下载接口
1 文件上传
1.1 上传流程
1.2 上传策略
2 文件下载
2.1 公有资源下载
2.2 私有资源下载
数据处理接口
1 图像
1.1 查看图像属性
1.2 查看图片EXIF信息
1.3 生成图片预览
贡献代码
许可证
应用接入
1. 获取Access Key 和 Secret Key
要接入七牛云存储,您需要拥有一对有效的 Access Key 和 Secret Key 用来进行签名认证。可以通过如下步骤获得:
开通七牛开发者帐号
登录七牛开发者自助平台,查看 Access Key 和 Secret Key 。
资源管理接口
1.查看单个文件属性信息
示例代码如下:
require_once("qiniu/rs.php");
$bucket = "phpsdk";
$key = "pic.jpg";
$accessKey = '<YOUR_APP_ACCESS_KEY>';
$secretKey = '<YOUR_APP_SECRET_KEY>';
Qiniu_SetKeys($accessKey, $secretKey);
$client = new Qiniu_MacHttpClient(null);
list($ret, $err) = Qiniu_RS_Stat($client, $bucket, $key);
echo "Qiniu_RS_Stat result: \n";
if ($err !== null) {
var_mp($err);
} else {
var_mp($ret);
}
2. 复制单个文件
示例代码如下:
require_once("qiniu/rs.php");
$bucket = "phpsdk";
$key = "pic.jpg";
$key1 = "file_name1";
$accessKey = '<YOUR_APP_ACCESS_KEY>';
$secretKey = '<YOUR_APP_SECRET_KEY>';
Qiniu_SetKeys($accessKey, $secretKey);
$client = new Qiniu_MacHttpClient(null);
$err = Qiniu_RS_Copy($client, $bucket, $key, $bucket, $key1);
echo "====> Qiniu_RS_Copy result: \n";
if ($err !== null) {
var_mp($err);
} else {
echo "Success!";
}
3. 移动单个文件
示例代码如下:
require_once("qiniu/rs.php");
$bucket = "phpsdk";
$key = "pic.jpg";
$key1 = "file_name1";
$accessKey = '<YOUR_APP_ACCESS_KEY>';
$secretKey = '<YOUR_APP_SECRET_KEY>';
Qiniu_SetKeys($accessKey, $secretKey);
$client = new Qiniu_MacHttpClient(null);
$err = Qiniu_RS_Move($client, $bucket, $key, $bucket, $key1);
echo "====> Qiniu_RS_Move result: \n";
if ($err !== null) {
var_mp($err);
} else {
echo "Success!";
}
4. 删除单个文件
示例代码如下:
require_once("qiniu/rs.php");
$bucket = "phpsdk";
$key1 = "file_name1";
$accessKey = '<YOUR_APP_ACCESS_KEY>';
$secretKey = '<YOUR_APP_SECRET_KEY>';
Qiniu_SetKeys($accessKey, $secretKey);
$client = new Qiniu_MacHttpClient(null);
$err = Qiniu_RS_Delete($client, $bucket, $key1);
echo "====> Qiniu_RS_Delete result: \n";
if ($err !== null) {
var_mp($err);
} else {
echo "Success!";
}
上传下载接口
###1. 文件上传
为了尽可能地改善终端用户的上传体验,七牛云存储首创了客户端直传功能。一般云存储的上传流程是:
客户端(终端用户) => 业务服务器 => 云存储服务
这样多了一次上传的流程,和本地存储相比,会相对慢一些。但七牛引入了客户端直传,将整个上传过程调整为:
客户端(终端用户) => 七牛 => 业务服务器
客户端(终端用户)直接上传到七牛的服务器,通过DNS智能解析,七牛会选择到离终端用户最近的ISP服务商节点,速度会比本地存储快很多。文件上传成功以后,七牛的服务器使用回调功能,只需要将非常少的数据(比如Key)传给应用服务器,应用服务器进行保存即可。
1.1上传流程
在七牛云存储中,整个上传流程大体分为这样几步:
业务服务器颁发 uptoken(上传授权凭证)给客户端(终端用户)
客户端凭借 uptoken 上传文件到七牛
在七牛获得完整数据后,发起一个 HTTP 请求回调到业务服务器
业务服务器保存相关信息,并返回一些信息给七牛
七牛原封不动地将这些信息转发给客户端(终端用户)
需要注意的是,回调到业务服务器的过程是可选的,它取决于业务服务器颁发的 uptoken。如果没有回调,七牛会返回一些标准的信息(比如文件的 hash)给客户端。如果上传发生在业务服务器,以上流程可以自然简化为:
业务服务器生成 uptoken(不设置回调,自己回调到自己这里没有意义)
凭借 uptoken 上传文件到七牛
善后工作,比如保存相关的一些信息
服务端生成 uptoken 代码如下:
require_once("qiniu/rs.php");
$bucket = 'phpsdk';
$accessKey = '<YOUR_APP_ACCESS_KEY>';
$secretKey = '<YOUR_APP_SECRET_KEY>';
Qiniu_SetKeys($accessKey, $secretKey);
$putPolicy = new Qiniu_RS_PutPolicy($bucket);
$upToken = $putPolicy->Token(null);
上传文件到七牛(通常是客户端完成,但也可以发生在服务端):
上传字符串
require_once("qiniu/io.php");
require_once("qiniu/rs.php");
$bucket = "phpsdk";
$key1 = "file_name1";
$accessKey = '<YOUR_APP_ACCESS_KEY>';
$secretKey = '<YOUR_APP_SECRET_KEY>';
Qiniu_SetKeys($accessKey, $secretKey);
$putPolicy = new Qiniu_RS_PutPolicy($bucket);
$upToken = $putPolicy->Token(null);
list($ret, $err) = Qiniu_Put($upToken, $key1, "Qiniu Storage!", null);
echo "====> Qiniu_Put result: \n";
if ($err !== null) {
var_mp($err);
} else {
var_mp($ret);
}
上传本地文件
require_once("qiniu/io.php");
require_once("qiniu/rs.php");
$bucket = "phpsdk";
$key1 = "file_name1";
$accessKey = '<YOUR_APP_ACCESS_KEY>';
$secretKey = '<YOUR_APP_SECRET_KEY>';
Qiniu_SetKeys($accessKey, $secretKey);
$putPolicy = new Qiniu_RS_PutPolicy($bucket);
$upToken = $putPolicy->Token(null);
$putExtra = new Qiniu_PutExtra();
$putExtra->Crc32 = 1;
list($ret, $err) = Qiniu_PutFile($upToken, $key1, __file__, $putExtra);
echo "====> Qiniu_PutFile result: \n";
if ($err !== null) {
var_mp($err);
} else {
var_mp($ret);
}
1.2 上传策略
uptoken 实际上是用 AccessKey/SecretKey 进行数字签名的上传策略(Qiniu_RS_PutPolicy),它控制则整个上传流程的行为。让我们快速过一遍你都能够决策啥:
class Qiniu_RS_PutPolicy
{
public $Scope; // 必选项。可以是 bucketName 或者 bucketName:key
public $CallbackUrl; // 可选
public $CallbackBody; // 可选
public $ReturnUrl; // 可选, 更贴切的名字是 redirectUrl。
public $ReturnBody; // 可选
public $AsyncOps; // 可选
public $EndUser; // 可选
public $Expires; // 可选。默认是 3600 秒
}
scope 限定客户端的权限。如果 scope 是 bucket,则客户端只能新增文件到指定的 bucket,不能修改文件。如果 scope 为 bucket:key,则客户端可以修改指定的文件。
callbackUrl 设定业务服务器的回调地址,这样业务服务器才能感知到上传行为的发生。
callbackBody 设定业务服务器的回调信息。文件上传成功后,七牛向业务服务器的callbackUrl发送的POST请求携带的数据。支持 魔法变量 和 自定义变量。
returnUrl 设置用于浏览器端文件上传成功后,浏览器执行301跳转的URL,一般为 HTML Form 上传时使用。文件上传成功后浏览器会自动跳转到 returnUrl?upload_ret=returnBody。
returnBody 可调整返回给客户端的数据包,支持 魔法变量 和 自定义变量。returnBody 只在没有 callbackUrl 时有效(否则直接返回 callbackUrl 返回的结果)。不同情形下默认返回的 returnBody 并不相同。在一般情况下返回的是文件内容的 hash,也就是下载该文件时的 etag;但指定 returnUrl 时默认的 returnBody 会带上更多的信息。
asyncOps 可指定上传完成后,需要自动执行哪些数据处理。这是因为有些数据处理操作(比如音视频转码)比较慢,如果不进行预转可能第一次访问的时候效果不理想,预转可以很大程度改善这一点。
关于上传策略更完整的说明,请参考 uptoken。
2. 文件下载
七牛云存储上的资源下载分为 公有资源下载 和 私有资源下载 。
私有(private)是 Bucket(空间)的一个属性,一个私有 Bucket 中的资源为私有资源,私有资源不可匿名下载。
新创建的空间(Bucket)缺省为私有,也可以将某个 Bucket 设为公有,公有 Bucket 中的资源为公有资源,公有资源可以匿名下载。
2.1 公有资源下载
如果在给bucket绑定了域名的话,可以通过以下地址访问。
[GET] http://<domain>/<key>
示例代码:
$key = 'pic.jpg';
$domain = 'phpsdk.qiniudn.com';
//$baseUrl 就是您要访问资源的地址
$baseUrl = Qiniu_RS_MakeBaseUrl($domain, $key);
其中可以到七牛云存储开发者自助网站绑定, 域名可以使用自己一级域名的或者是由七牛提供的二级域名(<bucket>.qiniudn.com)。注意,尖括号不是必需,代表替换项。
2.2 私有资源下载
私有资源必须通过临时下载授权凭证(downloadToken)下载,如下:
[GET] http://<domain>/<key>?e=<deadline>&token=<downloadToken>
注意,尖括号不是必需,代表替换项。
私有下载链接可以使用 SDK 提供的如下方法生成:
require_once("qiniu/rs.php");
$key = 'pic.jpg';
$domain = 'phpsdk.qiniudn.com';
$accessKey = '<YOUR_APP_ACCESS_KEY>';
$secretKey = '<YOUR_APP_SECRET_KEY>';
Qiniu_SetKeys($accessKey, $secretKey);
$baseUrl = Qiniu_RS_MakeBaseUrl($domain, $key);
$getPolicy = new Qiniu_RS_GetPolicy();
$privateUrl = $getPolicy->MakeRequest($baseUrl, null);
echo "====> getPolicy result: \n";
echo $privateUrl . "\n";
数据处理接口
七牛支持在云端对图像, 视频, 音频等富媒体进行个性化处理
1. 图像
1.1 查看图像属性
require_once("qiniu/rs.php");
require_once("qiniu/fop.php");
$key = 'pic.jpg';
$domain = 'phpsdk.qiniudn.com';
$accessKey = '<YOUR_APP_ACCESS_KEY>';
$secretKey = '<YOUR_APP_SECRET_KEY>';
Qiniu_SetKeys($accessKey, $secretKey);
//生成baseUrl
$baseUrl = Qiniu_RS_MakeBaseUrl($domain, $key);
//生成fopUrl
$imgInfo = new Qiniu_ImageInfo;
$imgInfoUrl = $imgInfo->MakeRequest($baseUrl);
//对fopUrl 进行签名,生成privateUrl。 公有bucket 此步可以省去。
$getPolicy = new Qiniu_RS_GetPolicy();
$imgInfoPrivateUrl = $getPolicy->MakeRequest($imgInfoUrl, null);
echo "====> imageInfo privateUrl: \n";
echo $imgInfoPrivateUrl . "\n";
将$imgInfoPrivateUrl粘贴到浏览器地址栏中就可以查看该图像的信息了。
1.2 查看图片EXIF信息
require_once("qiniu/rs.php");
require_once("qiniu/fop.php");
$key = 'pic.jpg';
$domain = 'phpsdk.qiniudn.com';
$accessKey = '<YOUR_APP_ACCESS_KEY>';
$secretKey = '<YOUR_APP_SECRET_KEY>';
Qiniu_SetKeys($accessKey, $secretKey);
//生成baseUrl
$baseUrl = Qiniu_RS_MakeBaseUrl($domain, $key);
//生成fopUrl
$imgExif = new Qiniu_Exif;
$imgExifUrl = $imgExif->MakeRequest($baseUrl);
//对fopUrl 进行签名,生成privateUrl。 公有bucket 此步可以省去。
$getPolicy = new Qiniu_RS_GetPolicy();
$imgExifPrivateUrl = $getPolicy->MakeRequest($imgExifUrl, null);
echo "====> imageView privateUrl: \n";
echo $imgExifPrivateUrl . "\n";
1.3 生成图片预览
require_once("qiniu/rs.php");
require_once("qiniu/fop.php");
$key = 'pic.jpg';
$domain = 'phpsdk.qiniudn.com';
$accessKey = '<YOUR_APP_ACCESS_KEY>';
$secretKey = '<YOUR_APP_SECRET_KEY>';
Qiniu_SetKeys($accessKey, $secretKey);
//生成baseUrl
$baseUrl = Qiniu_RS_MakeBaseUrl($domain, $key);
//生成fopUrl
$imgView = new Qiniu_ImageView;
$imgView->Mode = 1;
$imgView->Width = 60;
$imgView->Height = 120;
$imgViewUrl = $imgView->MakeRequest($baseUrl);
//对fopUrl 进行签名,生成privateUrl。 公有bucket 此步可以省去。
$getPolicy = new Qiniu_RS_GetPolicy();
$imgViewPrivateUrl = $getPolicy->MakeRequest($imgViewUrl, null);
echo "====> imageView privateUrl: \n";
echo $imgViewPrivateUrl . "\n";
贡献代码
Fork
创建您的特性分支 (git checkout -b my-new-feature)
提交您的改动 (git commit -am 'Added some feature')
将您的修改记录提交到远程 git 仓库 (git push origin my-new-feature)
然后到 github 网站的该 git 远程仓库的 my-new-feature 分支下发起 Pull Request

⑽ java怎么使用sdk接入微云网盘

要接入七牛云存储,您需要拥有一对有效的 Access Key 和 Secret Key 用来进行签名认证。可以通过如下步骤获得:
开通七牛开发者帐号
登录七牛开发者自助平台,查看 Access Key 和 Secret Key
在获取到 Access Key 和 Secret Key 之后,您可以按照如下方式进行密钥配置:
Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY);

上传下载接口

上传流程
在七牛云存储中,整个上传流程大体分为这样几步:
业务服务器颁发 uptoken(上传授权凭证)给客户端(终端用户)
客户端凭借 uptoken 上传文件到七牛
在七牛获得完整数据后,根据用户请求的设定执行以下操作:
a. 如果用户设定了returnUrl,七牛云存储将反馈一个指向returnUrl的HTTP 303,驱动客户端执行跳转;
b. 如果用户设定了callbackUrl,七牛云存储将向callbackUrl指定的地址发起一个HTTP 请求回调业务服务器,同时向业务服务器发送数据。发送的数据内容由callbackBody指定。业务服务器完成回调的处理后,可以在HTTP Response中放入数据,七牛云存储会响应客户端,并将业务服务器反馈的数据发送给客户端;
c. 如果两者都没有设置,七牛云存储根据returnBody的设定向客户端发送反馈信息。
需要注意的是,回调到业务服务器的过程是可选的,它取决于业务服务器颁发的 uptoken。如果没有回调,七牛会返回一些标准的信息(比如文件的 hash)给客户端。如果上传发生在业务服务器,以上流程可以自然简化为:
业务服务器生成 uptoken(不设置回调,自己回调到自己这里没有意义)
凭借 uptoken 上传文件到七牛
善后工作,比如保存相关的一些信息

热点内容
负九源码 发布:2025-07-22 02:00:52 浏览:759
老安卓机安装什么系统流畅 发布:2025-07-22 01:59:36 浏览:421
苹果6新建文件夹 发布:2025-07-22 01:47:25 浏览:874
如何消除安卓手机上的悬浮小圈 发布:2025-07-22 01:45:15 浏览:281
如何使用云存储的服务器 发布:2025-07-22 01:37:03 浏览:636
python中axis 发布:2025-07-22 01:04:05 浏览:445
我的世界如何在服务器中安装材质 发布:2025-07-22 01:04:04 浏览:718
android字符中文 发布:2025-07-22 01:03:30 浏览:633
生辰算法 发布:2025-07-22 01:01:38 浏览:498
补牙材料压缩 发布:2025-07-22 01:00:33 浏览:291