当前位置: 首页 > 编程笔记 >

具有公共文件访问权限集的Drupal私有文件下载

慕麒
2023-03-14
本文向大家介绍具有公共文件访问权限集的Drupal私有文件下载,包括了具有公共文件访问权限集的Drupal私有文件下载的使用技巧和注意事项,需要的朋友参考一下

Drupal有两种允许用户下载文件的方式,它们是私有的公共的

在公开的情况下,任何人都可以打开文件,而Drupal则不参与下载过程。这意味着下载文件时不会记录任何统计信息或使用权限。每个文件均按名称引用。

私有文件访问意味着每次下载文件时都运行Drupal。这样可以记录下载内容并运行权限检查,以确保允许有问题的用户访问文件。每个文件所引用的路径都可以与原始文件名完全不同。

使用私有文件访问的主要问题是,如果您允许用户将图像上载到模板中,则可能会引起问题(例如标头图像和事物)。如果您将其打开并允许使用许多不同的文件,也可能导致严重的性能下降,因为每个文件都必须通过Drupal传递,以确定当前用户是否允许下载该文件。

私有文件的缺点是,这也意味着您不能仅对站点上的文档进行访问限制,因为对所有文件都设置了权限。

通过使用以下.htaccess规则,可以下载具有公共文件访问权限的私有文件。可以将其放置在IfModule mod_rewrite.c块中。

RewriteRule ^sites/drupal/files/([^/]*?)$index.php?q=system/files/$1 [QSA]

如果要将文件夹用于特定的URL,则可以执行以下操作:

RewriteRule ^sites/www\.example\.com/files/([^/]*?)$index.php?q=system/files/$1 [QSA]

该规则将告诉Apache,如果该文件位于files目录的根目录中,而不位于任何子目录中,则必须将文件名传递给Drupal。只要文件名中没有斜杠,正则表达式就返回一个字符串。这样,我们可以将根目录用于可下载文件,并允许在这些文件上使用权限和统计信息。sites / default / files目录的所有子目录都可以用于用户图像和主题项目,而不必引导Drupal。

 类似资料:
  • 我正在使用Unity游戏引擎创建游戏。在这个游戏中,我抓取了一个屏幕截图,并将其保存到Unity的默认文件夹(“Application.PersistentDataPath”): /data/data/de.mytest.mygame/files/screenshot.png 如何修复此权限问题? 编辑:创建意图如下所示:

  • 因此,我的Laravel项目中有以下文件夹组织: 公共 user_images group_images img css 供应商 等... 所以我的问题是,当用户上传图像时,我将其移动到文件夹user#image,然后使用干预图像使其变小,使用image::make(#folder),然后重新调整其大小,最后保存它。但要做到这一点,文件夹用户_映像需要特殊权限,使用chmod 777,我可以使其正

  • 假设我有一个无法发现的公用文件夹。如果我公开了其中一个文件的文件ID以供下载,不受信任的用户是否可能获得包含该文件的文件夹的链接,或者该文件夹中其他文件的链接?我在Google API上做了搜索,但没有找到任何相关的东西。 编辑:似乎你们中的一些人还没有明白这个问题。所以让我用一个图表来说明。假设我在Google Drive中有一个公用文件夹: 所以问题是,如果其他人有文件X的文件ID,我很满意,

  • 我试图理解Java8中引入的新日期和时间API。 我在日志文件中有一个unix时间戳,我需要对它进行处理,以确定它属于今天或昨天的哪个小时。 我遇到了一个不寻常的错误在Android Studio,想更好地理解它。

  • 我需要一个代码(更喜欢在pyhton3),知道如何认证和下载URL直接从谷歌文档。

  • 我正在将文件从php上传到s3bucket.its上传成功,但当我检索图像时,我得到以下错误 如果我在上传文件时设置为公开,那么我可以检索它,但我想防止未经授权的用户。 上载文件代码 在问问题之前,我已经参考了许多网站,但它对我没有帮助 Amazon S3查看私人文件 PHP Amazon S3通过URL访问私人文件 如何通过Zend_Service_Amazon_S3访问Amazon s3私有桶