【发布时间】:2017-07-06 09:45:19
【问题描述】:
我正在从 url 读取图像并对其进行处理。我需要将此数据上传到云存储中的文件,目前我正在将数据写入文件并上传此文件,然后删除此文件。有没有办法可以将数据直接上传到云端存储?
static async uploadDataToCloudStorage(rc : RunContextServer, bucket : string, path : string, data : any, mimeVal : string | false) : Promise<string> {
if(!mimeVal) return ''
const extension = mime.extension(mimeVal),
filename = await this.getFileName(rc, bucket, extension, path),
modPath = (path) ? (path + '/') : '',
res = await fs.writeFileSync(`/tmp/${filename}.${extension}`, data, 'binary'),
fileUrl = await this.upload(rc, bucket,
`/tmp/${filename}.${extension}`,
`${modPath}${filename}.${extension}`)
await fs.unlinkSync(`/tmp/${filename}.${extension}`)
return fileUrl
}
static async upload(rc : RunContextServer, bucketName: string, filePath : string, destination : string) : Promise<string> {
const bucket : any = cloudStorage.bucket(bucketName),
data : any = await bucket.upload(filePath, {destination})
return data[0].metadata.name
}
【问题讨论】:
-
你找到方法了吗?我也想对 JSON 数据做同样的事情。
-
我已经发布了我使用的解决方案,抱歉耽搁了。
标签: node.js google-cloud-storage