如何从Javascript或Node.js中的图像/视频中删除GPS数据?

如何从Javascript或Node.js中的图像/视频中删除GPS数据?,javascript,security,image-processing,amazon-s3,metadata,Javascript,Security,Image Processing,Amazon S3,Metadata,在我的应用程序中,用户可以上传公开的图片和视频——个人资料图片、博客帖子等 因为它们对其他用户是公开的,所以这意味着与图像相关联的元数据也是公开的。这引起了巨大的隐私问题,因为用户的GPS位置等信息有时可以通过此元数据确定。我想从客户端删除这些数据,并上传一份新的图像/视频副本,而不将这些数据保存到我的数据库中(在本例中,S3使用预先签名的URL) 我在几个博客和其他StackOverflow帖子上看到了推荐的库。然而,这个库似乎只处理JPEG类型的文件(例如MP4呢?PNG现在也有EXIF,如

在我的应用程序中,用户可以上传公开的图片和视频——个人资料图片、博客帖子等

因为它们对其他用户是公开的,所以这意味着与图像相关联的元数据也是公开的。这引起了巨大的隐私问题,因为用户的GPS位置等信息有时可以通过此元数据确定。我想从客户端删除这些数据,并上传一份新的图像/视频副本,而不将这些数据保存到我的数据库中(在本例中,S3使用预先签名的URL)

我在几个博客和其他StackOverflow帖子上看到了推荐的库。然而,这个库似乎只处理JPEG类型的文件(例如MP4呢?PNG现在也有EXIF,如图所示)

应用程序需要删除
.jpg
.jpeg
.png
.gif
.mp4
文件中包含的所有GPS数据。我不关心其他元数据。但如果可能的话,我想删除所有不必要的元数据。通过这种方式,我可以减少文件上载大小,并删除隐藏在其中的潜在恶意注入代码

那么,有什么方法可以在客户端执行此操作呢?如果不存在,那么如何在服务器端执行此操作

理想情况下,流量如下所示:

  • 用户在客户端上载文件
  • 客户端删除GPS元数据
  • 客户端通过预先指定的url将剥离图像上传到S3
  • 我知道我可以使用
    FileReader
    api获取原始图像数据。因此,我有以下javascript代码:

    let fileNode = document.getElementById("file-uploader");
    
    const handleUpload = () => {
        console.log("Files uploaded: ", fileNode.files[0]);
        const testFile = fileNode.files[0];
        const fileReader = new FileReader();
    
        fileReader.onloadend = function() {
            console.log("File Array Raw: ", fileReader.result);
            console.log("File Array Buffer: ", Buffer(fileReader.result));
        }
        fileReader.readAsBinaryString(testFile);
    }
    
    成功输出上传文件的原始二进制文件和缓冲区。但我不知道具体在哪里编辑结果,以便分割元数据


    任何帮助或建议都是绝对推荐的。我主要关心的是隐私和GDPR合规性。

    @JaromandaX那么你建议我在哪里问这个问题?@JaromandaX我会在我的问题中添加一些代码,希望这会让问题变得更好。你可以使用第三方库
    ffmpeg
    。如果您使用的是nodejs,则可以使用
    fluent ffmpeg
    https://www.npmjs.com/package/fluent-ffmpeg
    By您可以在转换视频时排除元数据选项。@sumit谢谢您的回复,我将检查它out@Brad谢谢你的回复。我知道它叫EXIF,我只是很难找到关于如何为非JPEG文件编辑它的任何信息:/@JaromandaX那么你建议我在哪里问这个问题?@JaromandaX我会在我的问题中添加一些代码,希望这会使它更好。你可以使用第三方库
    ffmpeg
    。如果您使用的是nodejs,则可以使用
    fluent ffmpeg
    https://www.npmjs.com/package/fluent-ffmpeg
    By您可以在转换视频时排除元数据选项。@sumit谢谢您的回复,我将检查它out@Brad谢谢你的回复。我知道它被称为EXIF,我只是很难找到关于如何为非JPEG文件编辑它的任何信息:/