百度云存储接口
⑴ 做pc程序,如何获取百度云开放平台的API
使用云存储服务,需要首先创建应用并获取应用密钥对。操作步骤如下:
1. 在管理中心创建一个应用
2. 在应用基本信息页,获取相应的“API key 及 Secret Key”
注:access_token不能泄露,否则会直接封禁应用。
创建Bucket,可通过以下三种方式来实现:
1. 通过云存储管理控制台创建bucket。可以把bucket看成是命名空间,您的数据就存储在这个bucket里面。
2. 通过调用 REST API接口 Put_Bucket实现
3. 通过SDK,调用相关接口来实现
使用云存储服务上传文件有以下四种途径:
1. 使用Shell Tool上传
2. 使用SDK进行上传
3. 直接使用curl命令上传
4. 通过云存储管理控制台上传
使用shell tool上传
了解使用shell tool上传文件的详细内容及下载shell tool,请参考Shell Tool相关介绍。
使用SDK上传
目前网络云存储服务已为广大开发者提供了以下SDK:
php SDK
java SDK
Python SDK
C/C++(linux版本)SDK
如需下载相应的SDK,请点击这里。
直接使用curl上传
1. 获取上传链接:
上传地址:
bcs.app.com
获取上传链接:
通过云存储管理控制台的“URL签名”工具直接计算签名
填写以下信息:
Host: bcs.app.com
API Key: (“应用的基本信息页面”中查看)
Secret Key:
Method: PUT
Bucket: 在云存储管理平台中查看自己的bucket信息
Object:/testobject
点击“签名”按钮:签名后的地址已经全部列出来了,拷贝put操作对应的地址即可。
其实其他操作的签名也都算好了。
2. 上传文件:
例如:要上传本地文件bs.txt到云存储,并且命名为:testobject。
curl -T bs.txt -v
“http://bcs.app.com/bucket/testobject?sign=MBO:f:PVaOdaf%2BxNoC7aXRqL%2FJq5Kp7a4%3D"
直接通过管理控制台上传
通过云存储管理控制台,选择页面的“上传”即可。
没有bucket的情况下,需先创建bucket;
已创建bucket的情况下,选择并点击要上传文件的bucket名称,进入该bucket页面后再选择“上传文件”进行文件上传操作。
通过ACL设置bucket或object的访问权限。
创建bucket及上传文件时,默认是“私有”状态,通过ACL设置接口,可将其状态设置为公开或自定义访问权限。
设置为公开读(public-read)时,访问链接可不带签名,默认为所有人都可访问该资源。
设置为私有(private)时,访问链接需带签名,默认只有获取相关AK&SK的用户才可访问该资源。
⑵ 把安卓应用连上百度云数据库可能吗
网络云存储,即BCS(Bai Cloud Storage),提供object网络存储服务,旨在利用网络在分布式以及网络方面的优势为开发者提供安全、简单、高效的存储服务。
网络云存储提供了一系列简单易用的REST API接口、SDK、工具和方案,使得开发者通过网络即可随时、随地存储任何类型的数据、进行安全分享及灵活的资源访问权限管理。
通过使用网络云存储服务,开发者可以轻松地开发出扩展性强、稳定性好、安全快速的分布式网络服务;通过使用云存储服务提供的API、SDK及管理平台,开发者也可以迅速开发出适合各种业务的网络程序。
网络云存储可以支持文本、多媒体、二进制等任何类型的数据,支持签名认证及ACL权限设置进行资源访问控制,开发者可以通过管理控制台直接进行页面上传、下载或通过REST API、Shell Tool、SDK、curl等方式实现上传、下载。
像ES文件浏览器也是用这个做的,如果你只是做一个简单应用不建议用这个,自己电脑搭建一个服务也可以,因为这个服务现在已经收费了
具体可以去网络开放云的文档中看一下云服务的帮助文档
⑶ 能不能将数据存储在百度网盘上,自己编写的应用可以通过百度提供的接口访问
当然不可以,网络网盘只有存储功能,不具备读写程序功能。
做安卓应用实现更新自动提醒功能,你可以考虑将应用提交到个大APP平台,像豌豆荚,360手机应用,腾讯手机应用,网络91手机应用。
每次你更新只需要提交就可以同时更新。
⑷ 如何使用百度云API接口
http://developer..com/wiki/index.php?title=%E5%B8%AE%E5%8A%A9%E6%96%87%E6%A1%A3%E9%A6%96%E9%A1%B5/%E8%B5%84%E6%BA%90%E4%B8%8B%E8%BD%BD
学习了网络云盘文件API接口的使用;初步是想做一个在线android应用,应用中的文档是存放在网络云盘的。
主要是分一下几个步骤:
1.注册网络账号
2.登录网络开发者中心
3.创建移动应用,获取对应的(API Key Secret Key)
4.开通pcs API权限
5.获取ACCESS_token(认证编码)
6.开发应用
注意:
开通移动应用,获取key
获取token的时候我使用的安卓获取的方式
通过我写对应api的例子我发现,其实就两种情况:一种是get方式提交数据,另外一种是post方式提交数据
1.get方式提交数据,我们用获取云盘的信息为例:
获取云盘信息前我们要知道,我们要准备好什么数据:
请求参数:
url: 标明我们要访问的网址路径 值固定问""
method:标明我们是请求云盘信息 值固定为"info"
acceess_token:准入标识 值是我们自己申请的
接收返回参数:
quota:云盘总容量
used:云盘使用容量
request_id:该请求的表示,没啥用
返回的一个json串如下格式:{"quota":123794882560, "used":83573494688,"request_id":2853739529}
我在做的时候你使用Gson工具将json串转换到对应的entity类中了 代码如下:
[html] /**
* @param URLConnection conn通过get方式获取StringBuffer
* @return
*/
private StringBuffer getJsonString(URLConnection conn) {
InputStreamReader isr = null;
BufferedReader br = null;
StringBuffer sb = null;
try {
isr = new InputStreamReader(conn.getInputStream(),"gb2312");
br = new BufferedReader(isr);
String line = null;
sb = new StringBuffer();
while ((line = br.readLine()) != null) {
sb.append(line);
sb.append("\r\n");
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally{
try {
if(isr!=null)
isr.close();
} catch (IOException e) {
System.out.println("流关闭是异常");
e.printStackTrace();
}
}
return sb;
}
/**
* @return
* @throws Exception
* 获取云空间的信息
*/
public CloudInfo getCloudInfo() throws Exception {
URL u = new URL("?method=info&access_token=你申请的token的值";
URLConnection conn = u.openConnection();// 打开网页链接
// 获取用户云盘信息
String cloudJson = this.getJsonString(conn)。toString();
// 解析成对象 下面有这个实体对象的类
Gson gson = new Gson();
CloudInfo cloudInfo = gson.fromJson(cloudJson, CloudInfo.class);
System.out.println("云盘信息:"+cloudInfo);
return cloudInfo;
}
/**
* @param URLConnection conn通过get方式获取StringBuffer
* @return
*/
private StringBuffer getJsonString(URLConnection conn) {
InputStreamReader isr = null;
BufferedReader br = null;
StringBuffer sb = null;
try {
isr = new InputStreamReader(conn.getInputStream(),"gb2312");
br = new BufferedReader(isr);
String line = null;
sb = new StringBuffer();
while ((line = br.readLine()) != null) {
sb.append(line);
sb.append("\r\n");
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally{
try {
if(isr!=null)
isr.close();
} catch (IOException e) {
System.out.println("流关闭是异常");
e.printStackTrace();
}
}
return sb;
}
/**
* @return
* @throws Exception
* 获取云空间的信息
*/
public CloudInfo getCloudInfo() throws Exception {
URL u = new URL("?method=info&access_token=你申请的token的值";
URLConnection conn = u.openConnection();// 打开网页链接
// 获取用户云盘信息
String cloudJson = this.getJsonString(conn)。toString();
// 解析成对象 下面有这个实体对象的类
Gson gson = new Gson();
CloudInfo cloudInfo = gson.fromJson(cloudJson, CloudInfo.class);
System.out.println("云盘信息:"+cloudInfo);
return cloudInfo;
}
[html] package com.entity;
import java.lang.reflect.Type;
/**
* @author ydcun 获取云空间的信息 例如:
* {"quota":123794882560, 空间配额,单位为字节
* "used":83573494688, 已使用空间大小 单位为字节。
* "request_id":2853739529}
*/
public class CloudInfo{
private Double quota;
private Double used;
private Double request_id;
/**
* @return the quota 空间配额,单位为字节
*/
public Double getQuota() {
return quota;
}
/**
* @param quota the quota to set 空间配额,单位为字节
*/
public void setQuota(Double quota) {
this.quota = quota;
}
/**
* @return the used 已使用空间大小 单位为字节
*/
public Double getused() {
return used;
}
/**
* @param used the used to set 已使用空间大小 单位为字节
*/
public void setused(Double used) {
this.used = used;
}
/**
* @return the request_id
*/
public Double getRequest_id() {
return request_id;
}
/**
* @param request_id the request_id to set
*/
public void setRequest_id(Double request_id) {
this.request_id = request_id;
}
@Override
public String toString() {
return new StringBuffer()。append("空间容量:")。append(this.getQuota()/1024/1024)。append("M; 已用:")。append(this.getused()/1024/1024)。append("M; ")。toString();
}
}
package com.entity;
import java.lang.reflect.Type;
/**
* @author ydcun 获取云空间的信息 例如:
* {"quota":123794882560, 空间配额,单位为字节
* "used":83573494688, 已使用空间大小 单位为字节。
* "request_id":2853739529}
*/
public class CloudInfo{
private Double quota;
private Double used;
private Double request_id;
/**
* @return the quota 空间配额,单位为字节
*/
public Double getQuota() {
return quota;
}
/**
* @param quota the quota to set 空间配额,单位为字节
*/
public void setQuota(Double quota) {
this.quota = quota;
}
/**
* @return the used 已使用空间大小 单位为字节
*/
public Double getused() {
return used;
}
/**
* @param used the used to set 已使用空间大小 单位为字节
*/
public void setused(Double used) {
this.used = used;
}
/**
* @return the request_id
*/
public Double getRequest_id() {
return request_id;
}
/**
* @param request_id the request_id to set
*/
public void setRequest_id(Double request_id) {
this.request_id = request_id;
}
@Override
public String toString() {
return new StringBuffer()。append("空间容量:")。append(this.getQuota()/1024/1024)。append("M; 已用:")。append(this.getused()/1024/1024)。append("M; ")。toString();
}
}
2.通过post方式提交 我用上传单个文件为例子:
同样我们也先了解下上传文件要参数设置:
请求参数:
url: 标明我们要访问的网址路径 值固定问""
method:标明我们是请求云盘信息 值固定为"upload"
acceess_token:准入标识 值是我们自己申请的
path:是我们要上传到云盘的那个路径下 如/apps/myBaiCloud/ myBaiCloud是我们的应用名称(当你获取koten后就会自动生成以你应用名称为名的文件夹)
file:这个就是我们要上传的文件了(要求用post方式上传)
onp:可选参数,标识当有重名的文件的时候处理方式具体见api
接收返回参数:
返回的也是json串,
path:为我们上传的文件保存的全路径
size:文件的大小有多少字节
ctime/mtime:文件的创建修改时间
其他参数介绍点小标题去api中查看
{
"path" : "/apps/album/README.md"
"size" : 372121,
"ctime" : 1234567890,
"mtime" : 1234567890,
"md5" : "cb123afcc12453543ef",
"fs_id" : 12345,
"request_id":4043312669
}
我在做的时候也是将其封装到实体类中了,这里和上面一样不详述,我们重点看下提交文件是怎么提交的代码如下:
[java] /**
* @param path 云盘存放路径
* @param name 要上传的文件
* @return
* @throws Exception
*/
public FileBase uploadFile(String path,File file) throws Exception{
//模拟文件
String fileName="README.md";
file = new File(fileName);
path="%2fapps%2fmy%2f"; // 我用的是url编码过源码为:-> "/apps/my/
/"
//将需要url传值的参数和url组装起来
String u =""+path+file.getName()+"&method=upload&access_token=你自己申请的token值";
PostMethod filePost = new PostMethod(u);
//post提交的参数
Part[] parts = {new FilePart(fileName,file)};
//设置多媒体参数,作用类似form表单中的enctype="multipart/form-data"
filePost.setRequestEntity(new MultipartRequestEntity(parts, filePost.getParams()));
HttpClient clients = new HttpClient();
//响应代码
int status = clients.executeMethod(filePost);
System.out.println("成功上传"+path+fileName);
BufferedReader buReader = new BufferedReader(new InputStreamReader(filePost.getResponseBodyAsStream(),"utf-8"));
StringBuffer sb = new StringBuffer();
String line;
while((line=buReader.readLine())!=null){
sb.append(line);
}
buReader.close();
// 解析成对象
Gson gson = new Gson();
FileBase cloudInfo = gson.fromJson(sb.toString(), FileBase.class);
return cloudInfo;
}
/**
* @param path 云盘存放路径
* @param name 要上传的文件
* @return
* @throws Exception
*/
public FileBase uploadFile(String path,File file) throws Exception{
//模拟文件
String fileName="README.md";
file = new File(fileName);
path="%2fapps%2fmy%2f"; // 我用的是url编码过源码为:-> "/apps/my/
/"
//将需要url传值的参数和url组装起来
String u =""+path+file.getName()+"&method=upload&access_token=你自己申请的token值";
PostMethod filePost = new PostMethod(u);
//post提交的参数
Part[] parts = {new FilePart(fileName,file)};
//设置多媒体参数,作用类似form表单中的enctype="multipart/form-data"
filePost.setRequestEntity(new MultipartRequestEntity(parts, filePost.getParams()));
HttpClient clients = new HttpClient();
//响应代码
int status = clients.executeMethod(filePost);
System.out.println("成功上传"+path+fileName);
BufferedReader buReader = new BufferedReader(new InputStreamReader(filePost.getResponseBodyAsStream(),"utf-8"));
StringBuffer sb = new StringBuffer();
String line;
while((line=buReader.readLine())!=null){
sb.append(line);
}
buReader.close();
// 解析成对象
Gson gson = new Gson();
FileBase cloudInfo = gson.fromJson(sb.toString(), FileBase.class);
return cloudInfo;
}
上面代码成功后我们就会在/apps/my/目录下找到README.md文件
commons-codec-1.3.jar
commons-
commons-logging.jar
gson-2.2.1.jar
jsoup-1.6.3.jar
⑸ 百度云的服务接口是什么
网络云(Bai Cloud)是网络推出的一项云存储服务,首次注册即有机会获得2T的空间,已覆盖主流PC和手机操作系统,包含Web版、Windows版、Mac版、Android版、iphone版和Windows Phone版,用户将可以轻松将自己的文件上传到网盘上,并可跨终端随时随地查看和分享。
⑹ u盘和百度网盘有什么区别为什么要用u盘
首先,解释下U盘,全称USB闪存盘,英文名“USB
flash
disk”。是一种使用USB接口的无需物理驱动器的微型高容量移动存储产品,通过USB接口与电脑连接,实现即插即用。小巧便于携带、存储容量大、价格便宜、性能可靠。U盘体积很小,仅大拇指般大小,重量极轻,一般在15克左右,特别适合随身携带。
再谈,网络网盘(原网络云)是网络推出的一项云存储服务,首次注册即有机会获得2T的空间,已覆盖主流PC和手机操作系统,包含Web版、Windows版、Mac版、Android版、iPhone版和Windows
Phone版,用户将可以轻松将自己的文件上传到网盘上,并可跨终端随时随地查看和分享。
由此可见,两者都属于传输数据的途径中转。独立和个人信息不公开的档案或资料用U盘存储是最好的离线管理最安全的办法,相对来说网络网盘的功能和强大在于网络共享、以及在线分享功能是U盘不能与之相比的。
结语:
U盘:相对个人信息、照片、数据非共享类使用U盘存储是不会被在线破解的,安全性相对较高;
网络网盘:公共资料或档案的分享,在线分享是最方便和快捷的途径,数据不在占用电脑硬盘空间的最佳选择,与朋友、同事或他人仅需一个地址连接即可达到资源共享;
⑺ 百度云存储 创建bucket 怎么创建不成功
原因:您的网络版本错误,并没有使用正确方法建立;
如何正确创建bucket:
第一步:成为网络云开发者
要想利用网络云提供的接口和服务,理所当然,先成为网络开发者,实际上只要有网络账号(网络帖吧,网络网盘共用的一个号)就够了。
点击右方链接,上面有图文详解:http://jingyan..com/article/25648fc1defccd9190fd004f.html
第二步:在网络云平台上创建应用
参考官方文档:
点击http://developer..com/wiki/index.php?title=docs/pcs/guide/app_create打开链接
第三步:如何利用云存储
分三步来说明问题:
1.要实现代码和网络云的连接,总有一个东西作为桥梁,网络提供了一个bucket(木桶)其带有两个密码:AK和SK,
可以在代码中加入对应的bucket(附带Ak和Sk)实现与网络云存储的连接,实现上传和下载的功能。
下面说一下如何在存储里创建bucket,先看一下官方文档的步骤如下连接:
http://developer..com/wiki/index.php?title=docs/cplat/bcs/console2.0
但会发现无法创建bucket!!!!!!!!!!!!!!
其实网络云官方给的步骤是对的。
一定要在旧版控制台界面创建bucket!因为新版网络云平台没有这个功能,旧版的所有功能还没有完全搬迁到新界面上!!!!!!!!!
打开旧版控制中心链接:http://developer..com/bae/bcs/bucket/
一定要在此按照官方步骤创建bucket!
2.获取java-sdk的jar包,导入eclipse
跨过上一步网络云比较坑的坎,接下来相信都是很简单的了。
点击获取Java-sdk-jar包,获取下载成功后,导入eclipse工程即可,这里不再详细展开。
http://developer..com/wiki/index.php?title=docs/cplat/bcs/sdk
3.编写代码,实现自己写的Java代码和网络云存储的bucket的连接,上传下载文件。
java代码:
<span style="font-size:14px;"> import java.io.ByteArrayInputStream;
import java.io.IOException;
import com..inf.iis.bcs.BaiBCS;
import com..inf.iis.bcs.auth.BCSCredentials;
import com..inf.iis.bcs.model.ObjectMetadata;
import com..inf.iis.bcs.model.X_BS_ACL;
import com..inf.iis.bcs.request.CreateBucketRequest;
import com..inf.iis.bcs.request.PutObjectRequest;
public class CloudStorage {
<pre name="code" class="java" style="font-size:18px;"> private final static String BUCKET = "photo-bucket"; //一定是你的bucket名称
private final static String AK = "AK"; //你的bucket的附带的AK和SK码
private final static String SK = "SK";
private final static String HOST = "bcs.app.com"; //网络云存储的主机名称
private final static BaiBCS BAIDU_BCS = new BaiBCS(new BCSCredentials(AK,SK),HOST);
public static void upload(String fileName, byte[] contents) throws IOException {
ObjectMetadata objectMetadata = new ObjectMetadata();
objectMetadata.setContentEncoding("utf-8");
objectMetadata.setContentLength(contents.length);
PutObjectRequest request = new PutObjectRequest(BUCKET, fileName,
new ByteArrayInputStream(contents), objectMetadata);
boolean isExist = BAIDU_BCS.doesObjectExist(BUCKET, fileName);
if(isExist){
System.out.println("文件已经存在!");
return;
}
BAIDU_BCS.putObject(request);
}
public static void main(String[] args) throws IOException {
String fileName = "/aaaa/我是中文";
for(int i = 0; i < 10;i++){
upload(fileName+"_"+i+".txt","测试一下中文1111".getBytes());
}
}
} </span>
⑻ 怎样把百度网盘里的文件转存到U盘里
可以在电脑或手机上安装网盘,登录之后将文件下载到存储目录,然后接入U盘,存放到U盘里就可以。
网络云文件导到u盘里的步骤如下:
1.把U盘插入电脑。
360云盘已经停止分享和转存功能了。目前唯一的方法是,先将360云盘的文件下载到电脑,然后再上传到网络云盘,没有其他的更加便捷的方式,文件太大的话可以用网络云管家上传,或者使用网络云同步盘同步到云端保存。
当然,因为在同一时间下载的人太多。360的服务器肯定是非常爆炸的,很多人都在下载东西,服务器都是在处于高负荷的状态下的,卡顿和限速是避免不了的,个人推荐晚上的时候使用客户端下载一点点的搬。除此之外也没有更好的办法了。
⑼ u盘和百度网盘有什么区别为什么要用u盘
首先,解释下U盘,全称USB闪存盘,英文名“USB flash disk”。是一种使用USB接口的无需物理驱动器的微型高容量移动存储产品,通过USB接口与电脑连接,实现即插即用。小巧便于携带、存储容量大、价格便宜、性能可靠。U盘体积很小,仅大拇指般大小,重量极轻,一般在15克左右,特别适合随身携带。
再谈,网络网盘(原网络云)是网络推出的一项云存储服务,首次注册即有机会获得2T的空间,已覆盖主流PC和手机操作系统,包含Web版、Windows版、Mac版、Android版、iPhone版和Windows Phone版,用户将可以轻松将自己的文件上传到网盘上,并可跨终端随时随地查看和分享。
由此可见,两者都属于传输数据的途径中转。独立和个人信息不公开的档案或资料用U盘存储是最好的离线管理最安全的办法,相对来说网络网盘的功能和强大在于网络共享、以及在线分享功能是U盘不能与之相比的。
结语:
U盘:相对个人信息、照片、数据非共享类使用U盘存储是不会被在线破解的,安全性相对较高;
网络网盘:公共资料或档案的分享,在线分享是最方便和快捷的途径,数据不在占用电脑硬盘空间的最佳选择,与朋友、同事或他人仅需一个地址连接即可达到资源共享;