2017-01-05 2 views
1

У меня есть файлы журналов, которые регулярно упаковываются в ведро GCS (например, gs://my-bucket/log.json) Я хочу настроить процесс java для обработки файлов, gzip их и переместить их в отдельное ведро, где я архивирую файлы (то есть переместите его на gs://archived-logs/my-bucket/log.json.gz)Файл Gzipping на GCS (Google Cloud Storage) через API Java

gsutil cp -z, кажется, единственный вариант, который я могу найти в настоящее время. Кто-нибудь реализовал его с помощью Java API?

ответ

0

Хорошо, я решил, что решил. Решение стандартных потоков в конце.

 

    GcsOutputChannel gcsOutputChannel = gcsService.createOrReplace(new GcsFilename("my-bucket", "log.json.gz"), 
    new GcsFileOptions.Builder().build()); 
    GZIPOutputStream outputStream = new GZIPOutputStream(Channels.newOutputStream(gcsOutputChannel)); 

    GcsInputChannel inputChannel = gcsService 
        .openReadChannel(new GcsFilename("my-bucket", "log.json"), 10000); 

    InputStream inStream = Channels.newInputStream(inputChannel); 
    byte[] byteArr = new byte[10000]; 
    while (inStream.read(byteArr) > 0) { 
     outputStream.write(byteArr); 


    } 

Смежные вопросы