他の人には便利かもしれません。これは私がそれをした方法ですが、それを行うためのより簡単な方法があれば教えてください。 クラウドストレージJava APIと依存関係(httpクライアントAPIとoauth API)をダウンロードする必要があります。 https://developers.google.com/api-client-library/java/apis/
ジャクソンのようなJSONパーサーをダウンロードする必要があります。
ステップ 1>
Storage.Objects.Get getObject = client.objects().get("shiladityabucket",
"abc.json");
InputStream input = getObject.executeMediaAsInputStream();
2 JavaのクラウドストレージAPIを使用してInputStreamとしてJSONファイルを読み込ん> Javaオブジェクトの配列に変換します(私の場合はJSONファイルは複数のレコードを持っています)。単一のレコードであれば、配列は必要ありません。
ObjectMapper mapper = new ObjectMapper();
BillingInfo[] infoArr = mapper.readValue(input, BillingInfo[].class);
3>配列内のオブジェクトの反復処理とJSON文字列にそれらをひそか>
StorageObject objectMetadata = new StorageObject()
// Set the destination object name
.setName("abc.json")
// Set the access control list to publicly read-only
.setAcl(Arrays.asList(
new ObjectAccessControl().setEntity("allUsers").setRole("READER")));
4クラウドストレージにアップロードするStorageObjectを作成します。 ndjsonの改行を追加します。
for (BillingInfo info:infoArr) {
jSonString += mapper.writeValueAsString(info);
jSonString += "\n";
}
5>少なくとも別の行にファイル
Storage.Objects.Insert insertRequest = client.objects().insert(
"shiladitya001", objectMetadata, contentStream);
insertRequest.execute();
をアップロードする各オブジェクトをクラウドストレージのJava API
6>をされています使用して挿入するためにInputStreamを作成しますか?あるいは、各オブジェクトは多くの行に分散していますか? –
ソースファイルは毎日生成され、クラウドストレージバケットに入れられます。各レコードが複数の行にまたがるjson形式です – Shiladitya
バマー - ファイルを変換するために余分な手順を実行する必要があると思います –