【发布时间】:2014-02-01 02:29:32
【问题描述】:
我正在尝试将 Google AppEngine 与我的应用程序一起使用(以替换 AWS)。我的数据存储使用以下代码:
themeendpoint.Builder endpointBuilder = new themeendpoint.Builder(
AndroidHttp.newCompatibleTransport(),
new JacksonFactory(),
new HttpRequestInitializer() {
public void initialize(HttpRequest httpRequest) { }
});
themeendpoint endpoint = CloudEndpointUtils.updateBuilder(
endpointBuilder).build();
DbAdapter dbAdapter = new DbAdapter(mCtx);
try {
CollectionResponseTheme response = endpoint.listTheme().execute();
List<Theme> listResponse = response.getItems();
...
但是,当我尝试使用 Cloud Storage API 的以下代码(使用 Eclipse-->Google-->添加 Google APIs 添加)下载我存储的 zip 文件时:
File file = new File(Environment.getExternalStorageDirectory() + mLocalPath + mZipName);
Builder storageBuilder = new Storage.Builder(AndroidHttp.newCompatibleTransport(),
new JacksonFactory(),
new HttpRequestInitializer() {
public void initialize(HttpRequest httpRequest) { }
});
Storage storage = storageBuilder.build();
Storage.Objects.Get get = storage.objects().get(GAE_WEBDATA.PUBLIC_ZIP_BUCKET, mZipName);
FileOutputStream stream = new FileOutputStream(file);
try {
get.executeAndDownloadTo(stream);
} catch (Exception e) {
e.printStackTrace();
} finally {
stream.close();
}
}
我收到以下错误:
com.google.api.client.googleapis.json.GoogleJsonResponseException: 401 Unauthorized
{
"code" : 401,
"errors" : [ {
"domain" : "global",
"location" : "Authorization",
"locationType" : "header",
"message" : "Login Required",
"reason" : "required"
} ],
"message" : "Login Required"
}
在云控制台中,我将 Google Cloud Storage 设置为“开启”。特定的存储桶权限设置为“所有用户”=“读者”。我错过了什么?
【问题讨论】:
标签: android google-app-engine google-cloud-storage