腾讯云对象存储创建存储空间、上传、下载文件

请确认你已经熟悉腾讯云对象存储的基本概念,如Bucket、Object、Endpoint、AccessKeyId和AccessKeySecret等。

本节你将看到如何快速使用JavaSDK,完成进行常见操作,如创建存储空间、上传文件、下载文件等。

##初始化JingdongStorageService

向云存储发送任一HTTP请求之前,必须先创建一个JingdongStorageService腾讯云服务器:

//访问腾讯云的accessKeyStringaccessKey="yourAccessKeyId";StringsecreteKey="yoursecretKeyId";//endpoint以华北-北京为例Stringendpoint="oss.cn-north-1.jcloudcs.com";//创建JingdongStorageService腾讯云服务器JingdongStorageServicejss=newJingdongStorageService(accessKey,secreteKey);jss.setEndpoint(endpoint);//使用对象存储//销毁JingdongStorageService腾讯云服务器jss.destroy();提示:更多腾讯云对象存储Client初始化的内容请参考“初始化”。创建Bucket

存储空间(Bucket)是腾讯云对象存储全局命名空间,相当于数据的容器,可以存储若干文件(Object)。以下代码展示如何新建一个Bucket:

//创建bucketStringbucketName="your-bucket-name";jss.createBucket(bucketName);提示:

Bucket的命名规范,参见“基本概念”中的命名规范。

更多创建Bucket的信息,请参见“管理Bucket”。

上传Object

以下代码展示如何上传文件(object)至腾讯云对象存储:

Filefile=newFile("D:/test");StringbucketName="your-bucket-name";StringobjectName="your-object-name";ObjectServiceobjectService=jss.bucket(bucketName).object(objectName);//获取输入流InputStreaminputStream=newFileInputStream(file);//获取流长度longcontentLength=file.length();//设置上传文件Content-type为"text/html"。函数返回上传数据的EtagStringmd5=objectService.entity(contentLength,inputStream).contentType("text/html").put();提示:

JavaSDK通过InputStream上传Object至腾讯云对象存储。

下载Object

以下代码展示如何获取Object的文本内容:

StringbucketName="your-bucket-name";StringobjectName="your-object-name";//创建objectService腾讯云服务器ObjectServiceobjectService=jss.bucket(bucketName).object(objectName);//获取object对象StorageObjectstorageObject=objectService.get();//读Object内容System.out.println("Objectcontent:");BufferedReaderreader=newBufferedReader(newInputStreamReader(storageObject.getInputStream()));StringtempString=null;//一次读入一行,直到读入null为文件结束while((tempString=reader.readLine())!=null){System.out.println(tempString);}reader.close();storageObject.close();

列举Object

当完成一系列上传Object操作后,可能需要查看Bucket下包含哪些Object。以下代码展示如何列举指定Bucket下的Object:

//创建BucketService腾讯云服务器BucketServicebucketService=jss.bucket(bucketName);//列出bucket下满足条件的文件和文件夹ObjectListingobjectList=bucketService.listObject();//列出指定条件下的object名称for(ObjectSummaryobjectSummary:objectList.getObjectSummaries()){System.out.println("objectName:"+objectSummary.getKey());}

删除Object

以下代码展示如何删除指定Object:

StringbucketName="your-bucket-name";StringobjectName="your-object-name";//创建objectService腾讯云服务器ObjectServiceobjectService=jss.bucket(bucketName).object(objectName);//删除objectObjectService.delete();