`

baidu云存储BCS入门

阅读更多

          由于项目中多次使用到云存储方面的东西,特此总结一下,希望能更多的人使用百度BCS服务。关于如果申请开发者账号等问题,我这里就不再罗嗦了,大家去官方文档看一下即可:开发者中心,这个里讲的很好。

          首先文件上传后存储在一个叫bucket的地方,相当于顶级根目录吧!个人开发者可以创建5个bucket,然后每次操作文件的时候都需要指定相应的bucket。bucket不能通过api进行创建,必须手动在后台进行创建bucket,如下图所示,我就创建了一个photo-bucket.



 

        由于java的sdk直接封装了官方的rest接口,所以它依赖一些包,从官方文档来看,目前需要依赖下面的包:commons-logging、http-client4、httpcore4、commons-codec、flexjson这几个jar。

        不多说了,直接上代码吧:

         

import java.io.ByteArrayInputStream;
import java.io.IOException;

import com.baidu.inf.iis.bcs.BaiduBCS;
import com.baidu.inf.iis.bcs.auth.BCSCredentials;
import com.baidu.inf.iis.bcs.model.ObjectMetadata;
import com.baidu.inf.iis.bcs.model.X_BS_ACL;
import com.baidu.inf.iis.bcs.request.CreateBucketRequest;
import com.baidu.inf.iis.bcs.request.PutObjectRequest;


public class CloudStorage {
	private final static String AK = "AK";
	private final static String SK = "SK";
	private final static String HOST = "bcs.duapp.com";
	
	private final static BaiduBCS BAIDU_BCS = new BaiduBCS(new BCSCredentials(AK,SK),HOST);

	private final static String BUCKET = "photo-bucket";
	
	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());
		}
	}
}

           稍微讲解一下,前面定义了访问BCS所需要的AK和SK以及上传主机,目前的上传主机是确定的: bcs.duapp.com,然后声明了当前操作的bucket。在main函数里面循环上传10个文件,在上传文件的地方,指定上传文件的原数据,这里我们只给了比较简单的encoding和content-length参数。同时里面有一个文件是否存在的判断,我在这个地方只是做一个demo,bcs在存储文件的时候如果原来已经存在同名文件则直接进行覆盖,并没有任何提示信息,这点要特别注意。

           这里需要特别注意的是上传文件的时候文件名称必须以斜杠/开始,最后一个斜杠之前的路径信息如果bcs发现不存在就会在上面创建相应的目录,所以这个里面会创建aaaa目录,然后将10个文件上传到aaaa目录下面。我们来看一下上传后的效果图。

         

 

            好这个就先写到这里,从官方文档看出bcs支持断点续传等特性,后续还对这个进行详细的讲解,这个就是将大家领进门。

           

            

  • 大小: 45.1 KB
  • 大小: 48.8 KB
分享到:
评论
3 楼 zhengdebuzhidao 2014-09-23  
谢谢,这个问题最后解决了,是公司内部加密软件权限限制导致的。
2 楼 asialee 2014-04-09  
具体看看,我qq: 327379252.
1 楼 zhengdebuzhidao 2014-04-09  
你好,我的程序报  警告:Unable to execute HTTP request:Connection to http://bcs.duapp.com refused 是什么问题,是不是签名权限问题啊。帮个忙,谢谢。刚开始接触

相关推荐

    百度 BCS android DEMO

    百度 BCS android DEMO,经过测试,可以运行正常的。 运行程序需要添加自己的acesskey 和 secretkey(具体参见百度开发者文档)。 static String accessKey = ""; static String secretKey = ""; 由于百度的BCS...

    批量删除百度云存储bcs文件源码ABCDEFG

    因为百度云bcs的文件一次只能删除20个,而且没删除一次网页需要刷新一次,对于bcs中文件太多且需要删除全部文件的用户来说,该工具可以满足您的需求。 使用java swing 编写,免积分给大家...关键字:903010797

    百度BCS源码

    【百度BCS源码】是基于C++Builder编程语言实现的源代码,主要涉及百度云存储服务(BCS,Baidu Cloud Storage)的接口调用和相关功能。这个项目包含了与HTTP通信、签名计算以及一些基础工具类的功能,旨在帮助开发者...

    百度BCS 上传工具(基于java)

    百度云存储(Baidu Cloud Storage,简称BCS)是百度提供的一项高效、安全、稳定的云存储服务。为了方便开发者和用户上传大量数据到BCS,百度提供了基于Java的上传工具。这款工具具有友好的交互界面,能够实时显示...

    Python Web框架Flask中使用百度云存储BCS实例

    在Python Web开发中,Flask是一个轻量级且强大的框架,而百度云存储(BCS)则提供了一种高效、安全的数据存储解决方案。将两者结合使用,开发者可以在Flask应用中方便地实现文件上传、下载和管理功能。本篇将详细...

    BCS-support插件 v1.2.1

    WordPress插件,将附件保存于百度云存储BCS上,并在BAE上支持xmlrpc。最新版支持反盗链功能! 更新历史 2013.6.10更新v1.2.1 修复上一版中的bug. 增加反盗链设置,可自行选择是否设置反盗链,并可自己设置域名. ...

    baidu_bcs_sdk_java-master.zip_BCE_BCS

    【标题】"baidu_bcs_sdk_java-master.zip_BCE_BCS" 涉及的核心知识点是百度云存储(Baidu Cloud Storage, BCE BCS)的Java SDK,这是一个用于与百度云BCS服务交互的开发工具包。通过这个SDK,开发者可以方便地在Java...

    BCS-support插件.zip

    WordPress插件,将附件保存于百度云存储BCS上,并在BAE上支持xmlrpc。最新版支持反盗链功能! 更新历史 2013.6.10更新v1.2.1 修复上一版中的bug. 增加反盗链设置,可自行选择是否设置反盗链,并可自己设置域名...

    BCS上传分享代码 1.0.zip

    BCS上传分享代码至少需百度应用引擎(BAE)中的百度云存储(BCS)支持。 config.php 填写BAE数据库名称 通过平台提供的PhpMyAdmin访问 导入baefile.sql 不支持URL Rewrite请将no-rewrite-list.php重命名为list...

    bcs_Baidu-BCS-SDK-Java-1.4.5.zip_Baidu-BCS-SDK-Java_baidu-sdk-1.

    《深入理解百度云存储BCS Java SDK:从1.4.5版本开始》 百度云存储(Baidu Cloud Storage,简称BCS)是百度提供的云端数据存储服务,它为企业和个人提供了一个安全、可靠且易于使用的数据存储解决方案。为了方便...

    BCS应用与操作介绍

    SAP BCS资料,SAP BCS资料,SAP BCS资料,SAP BCS资料,SAP BCS资料,SAP BCS资料,SAP BCS资料,SAP BCS资料,SAP BCS资料,

    ms-bcs-spl-1.2-2.tar.gz_BCS_MS BCS SPL_MS-BCS_MS-BCS-SPL_spl

    MS-BCS-SPL一种新的压缩感知重构算法,相比TVAL3要好的多

    Flask-BCS:百度云存储BCS(Baidu Cloud Storage)Flask扩展,BCS(Baidu Cloud Storage) for Flask

    Flask-BCS (Baidu Cloud Storage)Flask扩展,BCS(Baidu Cloud Storage) for Flask 安装 pip install Flask-BCS 本扩展使用了,pip安装时会自动包含该SDK。详细说明请参考。 配置 配置项 说明 BCS_HOST BCS HOST ...

    Java结合百度云存储BCS代码分享

    最近云是一个很热门的新概念,仿佛任何东西只要跟云相关联,就立马高大上起来,额,我们也追随潮流吧,项目中也结合一下云!!

    BCS.rar_BCS

    标题中的"BCS.rar_BCS"可能是指一个名为"BCS"的压缩文件,扩展名为".rar",这通常是一个包含多个文件或文件夹的数据压缩包。在描述中提到的"BCS"可能是这个压缩包内一个特定的程序或者工具,它的主要功能是创建水平...

    Sharepoint BCS实例

    SharePoint Business Connectivity Services (BCS) 是一个强大的功能,它允许SharePoint与外部系统,如数据库、Web服务或任何其他数据源进行集成。这个“Sharepoint BCS实例”旨在展示如何利用BCS来实现SharePoint与...

    SEM-BCS (2.1) Integration SEM-BCS with SEM-BPS

    ### SEM-BCS (2.1) 与 SEM-BPS 的集成:理解 Solution Management Financials #### 一、概述 在 SAP 的财务管理解决方案中,SEM-BCS (Business Consolidation and Simulation) 和 SEM-BPS (Business Planning and ...

Global site tag (gtag.js) - Google Analytics