内容


使用 SLDT 将数据传输到 SoftLayer 对象存储

使用一个简单的 Java 工具向 SoftLayer 对象存储复制文件或从中复制文件

Comments

本文将展示如何使用 SLDT 向 SoftLayer 对象存储上传文件和从中下载文件,该对象存储是一种基于 OpenStack Swift 的技术。使用标准 HTTPS 连接传输数据。这个 SLDT 工具使用 usernameapikey 参数向 SoftLayer 执行身份验证。身份验证响应包括用于将数据传输到 SoftLayer API 的存储密钥和 URL。SLDT 的一个不错的数据传输特性是将对象分割为更小的部分。由于 Swift 的默认大小限制为 5 GB,此特性对于大型文件很有必要。如果 SLDT 不满足您的数据传输速率要求,可考虑来自 Aspera 的技术。

开始之前

  • 必须安装了一个 Java 运行时环境 (JRE)。
  • 必须有一个能访问对象存储的 SoftLayer 帐户。如果没有 SoftLayer 帐户,请参阅 SoftLayer 对象存储 创建一个帐户。
  • 您可能还需要配置代理服务器,以便允许 SLDT 工具连接到 SoftLayer 对象存储。

操作过程

  1. DevOps Services 下载 SLDT 工具。它与所有依赖项一起封装在一个 Java jar (sldt.jar) 中。
  2. 启动一个命令行接口会话并导航到包含 SLDT 工具的目录。
  3. 要查看帮助信息,请运行以下代码: java -jar sldt.jar -help

表 1 描述了所需的参数:

表 1. 所需的参数
参数 描述
-username <username> 来自 SoftLayer 凭据的用户名
-apikey <apikey> 来自 SoftLayer 凭据的 API 密钥
-filename <filename> 要传输的文件/对象的名称(container -list 操作不需要此信息)
-container <container> 对象的容器

表 2 描述了可使用 SLDT 工具运行的命令。您可以从中选择一个参数:

表 2. SLDT 命令
操作 描述
-write 将一个文件写入 SoftLayer
-read 从 SoftLayer 读取一个对象
-delete 从 SoftLayer 删除一个对象
-head 从 SoftLayer 获取一个对象的长度和 md5 校验和
-list 列出 SoftLayer 上的一个容器的内容

表 3 描述了您可以使用的可选参数:

表 3. 可选参数
参数 描述
-authurl <authurl> 默认身份验证端点为 https://dal05.objectstorage.softlayer.net/auth/v1.0/。如果想要访问其他任何身份验证端点,那么可以使用此参数。
-private 使用 SoftLayer 的私有网络。您必须在 SoftLayer 服务器上,然后才能使用该私有网络。
-help 在命令行接口上获取 SLDT 工具的帮助信息。
-md5sum <md5sum> 要验证的单个分段对象的 md5 校验和。
-segmentsize <segmentsize> Swift 分段大小(默认为 5 GB)。支持的范围为 1048576 (1 MB) 到 5368709120 (5 GB)。推荐使用默认值。
-force 如果文件或对象存在,则强制更新。

示例

示例 1:-write

通过运行以下命令将文件写入对象存储中:

java -jar sldt.jar -username <username> -apikey <apikey> -container <container> 
-filename <filename> -write

如果容器不存在,则创建该容器。如果该文件存在,那么此命令会失败。如果该文件大于分段大小(默认为 5 GB),则会在分段中将它传输到对象存储,这些分段可以通过编写一个清单文件标头,按照一定的逻辑来组装它们。该文件可作为单个对象读回。

示例 2:-write with md5sum

通过运行以下命令将文件写入对象存储,使用您提供的值检查服务器上的结果 md5sum

java -jar sldt.jar -username <username> -apikey <apikey> -container <container> 
-filename <filename> -write -md5sum <md5sum>

如果 md5sum 比较失败,则会抛出一个异常,但该对象仍会在对象存储中创建。仅支持可存储在单个分段中的对象的比较。通常,对象的长度小于或等于 5 GB。

示例 3:-read

通过运行以下命令从对象存储读取一个对象:

java -jar sldt.jar -username <username> -apikey <apikey> -container <container> 
-filename <filename> -read

如果本地已存在该文件,则该命令将会失败。

示例 4:-delete

通过运行以下命令从对象存储删除一个对象:

java -jar sldt.jar -username <username> -apikey <apikey> -container <container> 
-filename <filename> -delete

如果有必要,delete 命令可处理多个对象分段的删除。

示例 5:-head

通过运行以下命令获取对象存储中的对象的详细信息,比如长度和 md5 校验和:

java -jar sldt.jar -username <username> -apikey <apikey> -container <container> 
-filename <filename> -head

示例 6:-list

通过运行以下命令获取容器中的对象列表:

java -jar sldt.jar -username <username> -apikey <apikey> -container <container> -list

结束语

SLDT 简化了向 SoftLayer 对象存储写入数据和从中读取数据的过程,您可以使用 IBM® Cloud 市场分析服务集中精力处理数据分析任务。


相关主题


评论

添加或订阅评论,请先登录注册

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Cloud computing, Java technology
ArticleID=990958
ArticleTitle=使用 SLDT 将数据传输到 SoftLayer 对象存储
publish-date=12112014