Java ortamında, Google Cloud Storage'a günlük dosyalarını günlük olarak yazmak için çalışıyorum. Ham log dosyalarını ayrıştıran ve JSON satırları üreten bir işlem var; JSON satırlarını bir arabellekte saklıyorum ve arabellek her defasında 5mgb'ye her rastladığında, orijinal ham kaynak tamamen ayrıştırılıncaya kadar aynı dosyaya GCS'de yazmak istiyorum. AWS S3'e yazılan benzer bir kurulum var. Parçalardaki yazı hafıza sorunları nedeniyle yapılır. Google Cloud Storage’a, Java API’sı üzerinden nasıl bir yükleme yapılır?
ben şöyle GCS bir dosya yazmayı başardı (gcsService vb doğrulamalarıyla ve yapılandırılmış bir depolama nesnesidir): Maalesefprivate void uploadStream(String path, String name, String contentType, InputStream stream, String bucketName) throws IOException, GeneralSecurityException {
InputStreamContent contentStream = new InputStreamContent(contentType, stream);
StorageObject objectMetadata = new StorageObject()
.setName(path+"/"+name)
.setAcl(Arrays.asList(new ObjectAccessControl().setEntity("allUsers").setRole("READER")));
Storage.Objects.Insert insertRequest = gcsService.objects()
.insert(bucketName, objectMetadata, contentStream);
insertRequest.execute();
}
, ben GKS yazma anlamaya geçiremedi parçaları. Google’ın belgeleri iki yaklaşım önermektedir. https://cloud.google.com/storage/docs/json_api/v1/how-tos/upload
Diğeri yaklaşım istekleri "yaz" içerir: https://cloud.google.com/storage/docs/json_api/v1/objects/compose
Ben bir "devam ettirilebilir" yükleme kurmak almaya çalışırken, ama oldum Yapamam biri "devam ettirilebilir" Ekle istekleri kapsar işe koyul.
Herhangi bir fikrin var mı? Benim özel sorularım şunlardır:
- GCS'ye parçalar halinde yüklemek için zarif ve/veya uygun bir yol nedir?
- Java'daki Ekleme istekleri aracılığıyla yeniden yüklenebilen yüklemeleri nasıl GCS'ye kuracağını bilen var mı? Bu hiç yapılabilir mi?