如何使用节点客户端库以不同的名称上传本地文件?

时间:2019-04-11 00:53:12

标签: python node.js google-cloud-storage

Google Cloud的python客户端库界面允许您指定远程Blob名称(即/my/file.txt-> gs://bucket/newName.txt)。但是,我在节点客户端库中看不到执行此操作的方法。

我有在python中工作的示例,但是我依赖能够在时间戳上在存储服务器上添加文件名。由于(AFAIK)节点库仅使用本地文件名,因此出现了问题。

Python example-具有源/目标名称

def upload_blob(bucket_name, source_file_name, destination_blob_name):
    """Uploads a file to the bucket."""
    storage_client = storage.Client()
    bucket = storage_client.get_bucket(bucket_name)
    blob = bucket.blob(destination_blob_name)

    blob.upload_from_filename(source_file_name)

    print('File {} uploaded to {}.'.format(
        source_file_name,
        destination_blob_name))

Node example-使用本地文件名

// Uploads a local file to the bucket
await storage.bucket(bucketName).upload(filename, {
  // Support for HTTP requests made with `Accept-Encoding: gzip`
  gzip: true,
  metadata: {
    // Enable long-lived HTTP caching headers
    // Use only if the contents of the file will never change
    // (If the contents will change, use cacheControl: 'no-cache')
    cacheControl: 'public, max-age=31536000',
  },
});

有什么方法可以指定节点客户端库上传的文件名是什么?

谢谢。

1 个答案:

答案 0 :(得分:1)

使用节点SDK,您可以在传递的选项对象中指定目标文件作为要上传的第二个对象。 API docs for upload()中有一个示例。

storage.bucket(bucketName).upload(localFilePath, {
    destination: remoteFilePath
})