2016-12-10 8 views
0
私は docs

グーグル・クラウド・ストレージをするAppEngineの

(コードがhereから取られた)次のAppEngineを経由してGCSにファイルをアップロードしてい

public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException { 
    GcsFileOptions instance = GcsFileOptions.getDefaultInstance(); 
    GcsFilename fileName = getFileName(req); 
    GcsOutputChannel outputChannel; 
    outputChannel = gcsService.createOrReplace(fileName, instance); 
    copy(req.getInputStream(), Channels.newOutputStream(outputChannel)); 
} 
経由でアップロードするときに、ファイルにメタデータを追加する方法

、ここでコピー方法である:

private void copy(InputStream input, OutputStream output) throws IOException { 
    try { 
     byte[] buffer = new byte[BUFFER_SIZE]; 
     int bytesRead = input.read(buffer); 
     while (bytesRead != -1) { 
      output.write(buffer, 0, bytesRead); 
      bytesRead = input.read(buffer); 
     } 
    } finally { 
     input.close(); 
     output.close(); 
    } 
} 

が、今私は、ファイル

0123には、このメタデータを追加するには
metadata = "{timestamp:\"01/12/2016\", blabla: 111}" 

上記のコードを使用してこのメ​​タデータを追加するにはどうすればよいですか?

答えて

0

使用new Builder().addUserMetadata() insted of GcsFileOptions.getDefaultInstance();

public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException { 
    GcsFileOptions instance = new Builder().addUserMetadata("timestamp", "01/12/2016").build(); 
    GcsFilename fileName = getFileName(req); 
    GcsOutputChannel outputChannel; 
    outputChannel = gcsService.createOrReplace(fileName, instance); 
    copy(req.getInputStream(), Channels.newOutputStream(outputChannel)); 
} 
関連する問題