如何在通过 appengine 上传到 google-cloud-storage 时将元数据添加到文件
how to add metadata to file when uploading to google-cloud-storage via appengine
我正在按照 docs
通过应用引擎将文件上传到 GCS
(代码取自here)
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();
}
}
现在我想将此元数据添加到文件中
metadata = "{timestamp:\"01/12/2016\", blabla: 111}"
如何使用上面的代码添加此元数据?
使用 [=h11=] 代替 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));
}
我正在按照 docs
通过应用引擎将文件上传到 GCS(代码取自here)
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();
}
}
现在我想将此元数据添加到文件中
metadata = "{timestamp:\"01/12/2016\", blabla: 111}"
如何使用上面的代码添加此元数据?
使用 [=h11=] 代替 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));
}