我需要调整存储在firebase中的图像的大小,但是这些图像位于不同的文件夹中,像这样:
-bucket
-user
-images
我需要去某些用户的图像,我想应用这个脚本来调整图像
const storage = await getStorage();
const bucketName = `$socialmediaAPG.appspot.com/userId/images/`;
const bucket = storage.bucket(bucketName);
const files = await bucket.getFiles();
for (const file of files[0]) {
const isImage = file.name.toLowerCase().includes('jpg') || file.name.toLowerCase().includes('jpeg');
const isThumb = file.name.toLowerCase().includes('thumbs');
if (isImage && !isThumb) {
console.info(`Copying ${file.name}`);
const metadata = await file.getMetadata();
await file.copy(file.name);
await file.setMetadata(metadata[0]);
}
}
我得到这个错误:
复制userId/images/image1.jpg错误:No such object: socialmediaAPG.appspot.com/userId/images/image1.jpg
这似乎不对:
file.copy(file.name)
传递给file.copy
的参数是目的地文件名称,所以您试图将文件复制到自己。
您可能希望在目标文件名中添加自定义的thumbs
后缀,例如
file.copy(file.name+"thumbs")
对于实际的调整大小,我建议查看关于在云存储中调整图像大小的其他问题。