【发布时间】:2020-06-04 05:26:43
【问题描述】:
我有一个小应用程序,它有一个提要部分,用户可以在其中发布带有图像的数据,并且可以将帖子可见性设置为仅公开或关注者。为此,我在 Heroku 上使用 mLab 资源配置 Parse Server,并使用 GCS 适配器(谷歌云存储)来存储图像和文件。我写了Parse Cloud Function,它返回带有图像或文件url的json格式的帖子,然后我在Android App中显示响应。如果帖子附有图片,我将使用Glide 库使用响应中返回的 URL 来显示它。
现在我的问题是,从 Parse Server 返回的图像 url 是 public,因此任何人都可以从任何地方访问它并查看图像。
所以我的问题是,如何将解析文件 url 设为私有,并且只能由经过身份验证的用户访问,并且没有人只能使用 URL 访问图像?
【问题讨论】:
-
如果我没有理解错,您能否确认您是否担心在 Google Cloud Storage 中将文件设为私有?如果是,请查看此post。在 Google Cloud Storage 中,您可以将存储桶设为私有或仅授予您想要的用户访问权限,这样该存储桶中的所有文件都只能由您授予权限的用户访问,但如果您不想您的存储桶私有,您可以将对象(文件)设为私有,并且只有您提到的用户才能访问该对象。
-
如果您担心,请告诉我。
-
感谢@NibrassH,我在 GCS 上的存储桶已经是私有的,因此对象的所有 url 也是私有的(默认统一权限),没有人可以公开点击它,但是当我使用 parse -server-gcs-adapter 并使用 Parse.File 对象提取 url,然后可以从任何地方访问该 url。所以我想在这里确保 Parse.File url 应该是私有的,并且只有经过身份验证的用户才能访问。希望这会清除您的疑虑。
-
如果我理解正确,您有一个私有存储桶,如果您尝试访问任何文件的对象链接,您将收到拒绝访问响应。但是,如果您尝试使用
parse-server-gcs-adapter中的Parse.File方法访问该文件,则会加载该文件。所以你关心的是为什么文件被加载,因为它是私有的? -
是的,完全正确。现在我希望只有在用户通过身份验证时才使用
Parse.File方法加载它。如果用户未通过身份验证并尝试从外部(从浏览器或任何地方)点击该 url,那么他应该得到拒绝访问响应。
标签: parse-platform google-cloud-storage parse-server parse-cloud-code