ios – 通过Firebase存储上传图像,任何人都可以通过公共链接访问它

ios – 通过Firebase存储上传图像,任何人都可以通过公共链接访问它,第1张

概述每当我将图像上传到Firebase存储时,只能通过“下载链接”访问该文件. 如果我想让任何人访问此文件怎么办? 如果我转到Google平台存储并输入Firebase使用的相同存储桶,我可以看到未选中“公共链接”. 如何在上传照片时自动检查此项? 此类 *** 作可以通过Google云端存储API完成,但似乎没有任何选项通过Firebase. 此外,通过Firebase上传的所有图像都具有Content-T 每当我将图像上传到Firebase存储时,只能通过“下载链接”访问该文件.

如果我想让任何人访问此文件怎么办?

如果我转到Google平台存储并输入Firebase使用的相同存储桶,我可以看到未选中“公共链接”.

如何在上传照片时自动检查此项?

此类 *** 作可以通过Google云端存储API完成,但似乎没有任何选项通过Firebase.

此外,通过Firebase上传的所有图像都具有Content-Type“application / octet-stream”.

由于我正在上传图片,我希望这有“image / jpeg”或“image / png”.有没有办法改变元数据?

更新:我之所以这样问的原因是因为如果用Instagram创建一个类似数千张图像的应用程序.为每个正在获取的图像请求下载链接是不必要的,因为问题中的图像应该已经默认公开. Firebase文件上传阻止了这一点,每个用户必须为每个图像发出一个请求(每个应用程序启动时可能会有大量图像).例如,Firebase Flame订阅计划每月下载/上传次数限制为100,000次.这使得创建具有数千个用户的图像馈送是不现实的,每个用户具有数千个图像请求.文件应该可以选择在上传过程中创建公共链接,就像Google云端存储API本身一样.

解决方法 没有配置可自动检查Google Cloud Storage的公共访问复选框,以查找通过Firebase存储上传的文件.

也就是说,您可以编写一个Google Cloud功能,该功能在文件上传时触发,然后更改文件的属性,具体而言,您需要change the object ACLs to be publicRead.

但是,由于Firebase为您生成的下载URL已经公开可读,因此我不确定您通过选中此框获得了什么.是否存在您正在寻找的特定用例,仅通过共享下载URL无法涵盖?

在问题的第二部分,请查看我们文档的File Metadata部分,其中介绍了如何设置文件的内容类型:

// Create file Metadata to updateFirstorageMetadata *newMetadata = [[FirstorageMetadata alloc] init];newMetadata.ContentType = @"image/jpeg";// Update Metadata propertIEs[myRef updateMetadata:newMetadata completion:^(FirstorageMetadata *Metadata,NSError *error){  if (error != nil) {    // Uh-oh,an error occurred!  } else {    // Updated Metadata for 'images/forest.jpg' is returned  }}];

Metadata can on added on upload as well,所以不需要第二个请求.

总结

以上是内存溢出为你收集整理的ios – 通过Firebase存储上传图像,任何人都可以通过公共链接访问它全部内容,希望文章能够帮你解决ios – 通过Firebase存储上传图像,任何人都可以通过公共链接访问它所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1051095.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存