Ubuntu One API Java - 如何使用 REST 和 AccessToken?

Ubuntu One API Java - 如何使用 REST 和 AccessToken?

我正在 eclipse 中编写一个 java 应用程序,将数据加密和冗余地备份到多个消费者云服务。

到目前为止,我已成功实现身份验证过程,如文档

目前,我不知道该怎么做。下一步是使用存储的 AccessToken 实现身份验证,然后通过 REST API 实现上传/下载/列表功能。

  1. 我认为我必须存储字符串 oauth.getSerialized()。之后如何使用此字符串进行身份验证?这不起作用,例如:

    AuthenticateResponse oauth = api.authenticate(serialized);
    api.setAuthorizer(new OAuthAuthorizer(oauth));
    
  2. 有人能告诉我如何将 REST API 与 Java 结合使用吗?据我所知,开发者区域没有解释或链接。

顺便说一句,我浪费了至少一个小时尝试修复错误,因为一些需要的库是列出的示例代码。:/

答案1

我设法解决了这个问题。

正如您提到的,您可以存储身份验证令牌。因此,以下是前进的方向:

目标:创建 U1FileAPI 对象

public U1FileAPI(String appPackageName, String appVersion,
    HttpClient httpClient, Authorizer authorizer)

构造函数接受:

  1. appPackageName >这与您在创建身份验证时提供的包名称相同
  2. appVersion >这与您在创建身份验证时指定的 appVersion 名称相同
  3. httpClient > 创建一个新的 HttpClient httpClient = new DefaultHttpClient();
  4. 授权人> 为此,您只需付出一点努力:

    ObjectInputStream input = new ObjectInputStream(
        new FileInputStream("/file/where/you/save/auth/tokens"));
    

创建 OAuthAuthorizer 对象:

OAuthAuthorizer aOuth = OAuthAuthorizer.getWithTokens(
    input.readObject().toString(), new HmacSha1MessageSigner());

现在您可以开始创建 U1FileAPI 了:

U1FileAPI   uOneFs = new U1FileAPI(package_api, version, httpClient, aOuth);

使用uOneFs的公开方法来解决您的实际备份需求。

在浏览时发现 Ubuntu One 的交叉引用,希望它也能帮助您更好地理解这一点: http://code.metager.de/source/xref/ubuntu/one/files-java-library/src/main/com/ubuntuone/api/files/U1FileAPI.java#resourceClient

相关内容