#python #node.js #google-cloud-storage
#python #node.js #google-облачное хранилище
Вопрос:
Интерфейс клиентской библиотеки python в Google Cloud позволяет указать имя удаленного большого двоичного объекта (например, /my/file.txt
-> gs://bucket/newName.txt
). Однако я не вижу способа сделать это в клиентской библиотеке узла.
У меня есть пример, работающий на python, но я полагался на возможность добавлять имена файлов на сервере хранения с меткой времени. Это создает проблему, поскольку (AFAIK) библиотека узла просто использует имя локального файла.
Пример Python — имеет имена источника / назначения
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))
Пример узла — использует локальное имя файла
// 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:
С помощью node SDK вы можете указать целевой файл в объекте options, который вы передаете в качестве второго объекта для загрузки. В документах API есть пример для upload() .
storage.bucket(bucketName).upload(localFilePath, {
destination: remoteFilePath
})
Комментарии:
1. Отлично, именно то, что я искал!