我正在 eclipse 中编写一个 java 应用程序,将数据加密和冗余地备份到多个消费者云服务。
到目前为止,我已成功实现身份验证过程,如文档。
目前,我不知道该怎么做。下一步是使用存储的 AccessToken 实现身份验证,然后通过 REST API 实现上传/下载/列表功能。
我认为我必须存储字符串 oauth.getSerialized()。之后如何使用此字符串进行身份验证?这不起作用,例如:
AuthenticateResponse oauth = api.authenticate(serialized); api.setAuthorizer(new OAuthAuthorizer(oauth));
有人能告诉我如何将 REST API 与 Java 结合使用吗?据我所知,开发者区域没有解释或链接。
顺便说一句,我浪费了至少一个小时尝试修复错误,因为一些需要的库是列出的后示例代码。:/
答案1
我设法解决了这个问题。
正如您提到的,您可以存储身份验证令牌。因此,以下是前进的方向:
目标:创建 U1FileAPI 对象
public U1FileAPI(String appPackageName, String appVersion,
HttpClient httpClient, Authorizer authorizer)
构造函数接受:
- appPackageName >这与您在创建身份验证时提供的包名称相同
- appVersion >这与您在创建身份验证时指定的 appVersion 名称相同
- httpClient > 创建一个新的 HttpClient httpClient = new DefaultHttpClient();
授权人> 为此,您只需付出一点努力:
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