Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否可以使用java更改google云存储文件的文件名?_Java_Google App Engine_Google Cloud Storage_Blobstore - Fatal编程技术网

是否可以使用java更改google云存储文件的文件名?

是否可以使用java更改google云存储文件的文件名?,java,google-app-engine,google-cloud-storage,blobstore,Java,Google App Engine,Google Cloud Storage,Blobstore,是时候使用java(BlobstoreService)更改Google云存储中下载的文件名了。BlobstoreService中是否有在下载该文件之前更改文件名的规定?是否有用于更改文件名的有用API?这里发生的事情是,当我在GCS中保存一个文件时,它将生成一个blob密钥。谷歌云存储中的文件类型也发生了变化。现在,我只想在下载之前更改文件名,以及文件的类型。您可以通过读取文件并使用新名称保存来重命名文件。下面是一些示例代码,您可能需要添加自己的删除函数才能删除旧文件: public void

是时候使用java(BlobstoreService)更改Google云存储中下载的文件名了。BlobstoreService中是否有在下载该文件之前更改文件名的规定?是否有用于更改文件名的有用API?这里发生的事情是,当我在GCS中保存一个文件时,它将生成一个blob密钥。谷歌云存储中的文件类型也发生了变化。现在,我只想在下载之前更改文件名,以及文件的类型。

您可以通过读取文件并使用新名称保存来重命名文件。下面是一些示例代码,您可能需要添加自己的删除函数才能删除旧文件:

public void moveFile(String fileName, String bucket, String newFilename, String contentType) throws IOException {
    byte[] bytes = loadFile(bucket, fileName);
    ByteArrayInputStream in = new ByteArrayInputStream(bytes);
    saveToGcs(bucket, fileName, in, contentType);
}

public byte[] loadFile(String bucket, String fileName) throws IOException {
    GcsFilename gcsFileName = new GcsFilename(bucket, fileName);
    GcsInputChannel readChannel = gcsService.openReadChannel(gcsFileName, 0);
    InputStream in = Channels.newInputStream(readChannel);
    return IOUtils.toByteArray(in);
}

private void saveToGcs(String bucket, String filename, InputStream inputStream, String mimeType) throws IOException {
    GcsFilename gcsFilename = new GcsFilename(bucket, filename);
    GcsFileOptions options = new GcsFileOptions.Builder().mimeType(mimeType).acl("public-read").build();
    GcsOutputChannel writeChannel = gcsService.createOrReplace(gcsFilename, options);
    BufferedOutputStream outputStream = new BufferedOutputStream(Channels.newOutputStream(writeChannel));
    IOUtils.copy(inputStream, outputStream);
    outputStream.close();
    writeChannel.close();
}

你找到在GCS中重命名文件的方法了吗。?如果有的话,请与我们分享。?