OBS JAVA SDK Demo:下载对象到本地文件系统
【摘要】 1 背景介绍OBS桶内的对象可以下载到本地文件系统,本文档将展示如何调用OBS SDK实现对象下载到本地的功能。2 代码展示需要先下载OBS最新的JAVA SDK,参考官网链接:https://developer.huaweicloud.com/sdk?OBS,并在自己的项目中导入SDK中的JAR包。前提条件:已创建OBS桶,且桶内 已上传文件f1.txt代码示例:将f1...
1 背景介绍
OBS桶内的对象可以下载到本地文件系统,本文档将展示如何调用OBS SDK实现对象下载到本地的功能。
2 代码展示
需要先下载OBS最新的JAVA SDK,参考官网链接:https://developer.huaweicloud.com/sdk?OBS,并在自己的项目中导入SDK中的JAR包。
前提条件:已创建OBS桶,且桶内 已上传文件f1.txt
代码示例:将f1.txt下载到本地保存为downf1.txt
package samples_java;
import com.obs.services.ObsClient;
import com.obs.services.ObsConfiguration;
import com.obs.services.exception.ObsException;
import com.obs.services.model.DownloadFileRequest;
import com.obs.services.model.DownloadFileResult;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Properties;
public class DownloadObject {
private static final String endPoint = " XXX";
private static final String ak = "XXX";
private static final String sk = "XXX";
private static ObsClient obsClient;
private static DownloadFileRequest downloadFileRequest;
private static String bucketName = "obs-bucket001";
private static String objectName = "f1.txt";
private static String dstPath = "E://downf1.txt";
public static void main(String[] args)
throws IOException
{
ObsConfiguration config = new ObsConfiguration();
config.setSocketTimeout(30000);
config.setConnectionTimeout(10000);
config.setEndPoint(endPoint);
try
{
/*
* Constructs a obs client instance with your account for accessing OBS
*/
obsClient = new ObsClient(ak, sk, config);
/*
* Download Object
*/
downloadFileRequest = new DownloadFileRequest(bucketName,objectName,dstPath);
downloadFileRequest.setTaskNum(1);
downloadFileRequest.setPartSize(1024 * 1024 * 1024);
// downloadFileRequest.setEnableCheckpoint(true);
long startTime = System.currentTimeMillis();
DownloadFileResult downloadFileResult = obsClient.downloadFile(downloadFileRequest);
long endtime = System.currentTimeMillis();
System.out.println(String.valueOf((endtime - startTime) / 1000.0D) + "s");
System.out.println(String.valueOf((downloadFileResult.getObjectMetadata().getContentLength() * 1000.0 / (endtime - startTime)) / (1024 * 1024)) + "MB/s");;
}
catch (ObsException e)
{
System.out.println("Response Code: " + e.getResponseCode());
System.out.println("Error Message: " + e.getErrorMessage());
System.out.println("Error Code: " + e.getErrorCode());
System.out.println("Request ID: " + e.getErrorRequestId());
System.out.println("Host ID: " + e.getErrorHostId());
}
finally
{
if (obsClient != null)
{
try
{
/*
* Close obs client
*/
obsClient.close();
}
catch (IOException e)
{
}
}
}
}
}
3 效果展示
下载的文件保存在E://downf1.txt
对于大文件还可以打开断点续传,只需要打开Checkpoint
downloadFileRequest.setEnableCheckpoint(true)
4 附录
OBS JAVA SDK使用,官网参考链接:https://support.huaweicloud.com/sdkreference-obs/obs_02_0001.html
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)