Tôi đã tự động thành công quy trình di chuyển dữ liệu từ Google Big Query, tới Google Storage. Bây giờ tôi cũng cần phải tải dữ liệu từ Google Storage về môi trường của mình theo cách tự động.Tải xuống tệp từ Google Storage bằng cách sử dụng Java
Tôi đang cố thực hiện yêu cầu HTTP bình thường, nhưng cho phép trước đó. Vì vậy, yêu cầu HTTP của tôi là
HttpRequestFactory requestFactory = HTTP_TRANSPORT.createRequestFactory(authorize());
GenericUrl url = new GenericUrl(uri);
HttpRequest request = requestFactory.buildGetRequest(url);
HttpResponse response = request.execute();
String content = response.parseAsString();
Và mã uỷ quyền của tôi là
/** Authorizes the installed application to access user's protected data. */
private static Credential authorize() throws Exception
{
HttpTransport httpTransport = new NetHttpTransport();
JsonFactory jsonFactory = new JacksonFactory();
// load client secrets
GoogleClientSecrets clientSecrets = GoogleClientSecrets.load(JSON_FACTORY,
new InputStreamReader(BigQueryConsumer.class.getResourceAsStream("/secret.json")));
// This creates the credentials datastore at ~/.oauth-credentials/${credentialDatastore}
FileDataStoreFactory fileDataStoreFactory = new FileDataStoreFactory(new File(System.getProperty("user.home") + "/" + CREDENTIALS_DIRECTORY));
// set up authorization code flow
GoogleAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow.Builder(
httpTransport, JSON_FACTORY, clientSecrets,
SCOPES).setDataStoreFactory(fileDataStoreFactory)
.build();
// authorize
return new AuthorizationCodeInstalledApp(flow, new LocalServerReceiver()).authorize("user");
}
Trong trường hợp hằng số sau đây là
- CREDENTIALS_DIRECTORY: ".oauth-credentials"
- JSON_FACTORY: JacksonFactory. getDefaultInstance()
- SCOPES: Danh sách chuỗi chỉ có "https://www.googleapis.com/auth/devstorage.full_control"
- HTTP_TRANSPORT: mới NetHttpTransport()
tôi đang thiếu gì trong khi xác thực quá trình/ủy quyền? Tôi đang nhận được
Exception in thread "main" com.google.api.client.http.HttpResponseException: 401 Unauthorized
<HTML>
<HEAD>
<TITLE>Unauthorized</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000">
<H1>Unauthorized</H1>
<H2>Error 401</H2>
</BODY>
</HTML>
Bạn cũng có thể muốn thử ['gcloud-java'] (http://googlecloudplatform.github.io/gcloud-java/), đây là một số [mã mẫu] (https: //github.com/GoogleCloudPlatform/gcloud-java/blob/master/gcloud-java-examples/src/main/java/com/google/gcloud/examples/StorageExample.java). –