在Node.js中,您可以使用Google Cloud Storage库为上传到谷歌云存储的文件设置内容类型。以下是一个示例,展示了如何使用该库上传文件并设置内容类型:
首先,确保您已经安装了@google-cloud/storage
库:
npm install --save @google-cloud/storage
然后,您可以使用以下代码上传文件并设置内容类型:
const { Storage } = require('@google-cloud/storage');
const storage = new Storage();
async function uploadFileWithContentType(bucketName, sourceFilePath, destinationFileName, contentType) {
const bucket = storage.bucket(bucketName);
// 创建一个可写流
const file = bucket.file(destinationFileName);
const writeStream = file.createWriteStream({
metadata: {
contentType: contentType,
},
});
// 将文件内容写入到谷歌云存储
const fs = require('fs');
const readStream = fs.createReadStream(sourceFilePath);
readStream.pipe(writeStream);
return new Promise((resolve, reject) => {
writeStream.on('error', (err) => {
reject(err);
});
writeStream.on('finish', () => {
resolve(`File ${destinationFileName} uploaded to ${bucketName}.`);
});
});
}
// 使用示例
(async () => {
const bucketName = 'your-bucket-name';
const sourceFilePath = './path/to/your/local/file';
const destinationFileName = 'example.txt';
const contentType = 'text/plain';
try {
const result = await uploadFileWithContentType(bucketName, sourceFilePath, destinationFileName, contentType);
console.log(result);
} catch (error) {
console.error('Error uploading file:', error);
}
})();
在这个示例中,uploadFileWithContentType
函数接受以下参数:
bucketName
:谷歌云存储桶的名称。sourceFilePath
:要上传的本地文件的路径。destinationFileName
:文件在谷歌云存储中的名称。contentType
:要设置的内容类型。您需要将your-bucket-name
替换为您的谷歌云存储桶名称,将./path/to/your/local/file
替换为要上传的本地文件的路径,将example.txt
替换为文件在谷歌云存储中的名称,将text/plain
替换为要设置的内容类型。
这个示例使用了@google-cloud/storage
库的createWriteStream
方法创建一个可写流,并通过metadata
选项设置了内容类型。然后,使用pipe
方法将本地文件的内容写入到谷歌云存储。
领取专属 10元无门槛券
手把手带您无忧上云