如何从通过 Firebase 上传到 Cloud Storage 的文件中删除 EXIF 数据

问题描述 投票:0回答:1

我正在通过 Firebase Storage SDK 将文件(包括手机拍摄的带有位置数据的图片和视频)上传到 Cloud Storage 存储桶。如何从这些文件中删除 EXIF 数据?最好在客户端删除它们,但如果需要云功能,那就没问题了。

firebase google-cloud-storage exif
1个回答
0
投票

上传前可以使用exif-js去除EXIF数据

确保通过运行

exif-js
或通过
npm i exif-js
调用脚本来安装
<script src="https://unpkg.com/exif-js"></script>
软件包。

下面的代码是实现

import exif from 'exif-js';

function removeExif(file) {
  return new Promise((resolve, reject) => {
    exif.getData(file, function() {
      // Remove EXIF data
      exif.getAllTags(this);
      for (const tag in this.exifdata) {
        if (tag.startsWith('exif')) {
          delete this.exifdata[tag];
        }
      }
      // Create a new Blob with the modified image data
      const blob = new Blob([this.getBinary()], { type: file.type });
      resolve(blob);
    });
  });
}

然后在您的上传功能上添加

await removeExif(image);
所以它应该是这样的

const imageWithoutExif = await removeExif(image);
const uploadTask = storageRef.put(imageWithoutExif);

我的图像上传处理程序在将其放入 Firebase Cloud Storage 之前调用removeExif 函数

使用 exif-js 处理图像上传中的 EXIF 删除

快乐编码:)

© www.soinside.com 2019 - 2024. All rights reserved.