Drupal 文档还没有对此我说的不多。
http://drupal.org/documentation/modules/file#access
管理文件位置和访问
创建文件字段时,您可以指定站点文件系统的子目录,用于存储此内容类型的上传文件。站点的文件系统路径在文件系统页面(管理 > 配置 > 媒体:文件系统)上定义。
您还可以指定文件是存储在公共目录中还是私有文件存储区域中。公共目录下的文件可以直接通过web服务器访问;当列出公共文件时,将使用文件的直接链接,任何知道文件 URL 的人都可以下载该文件。私有目录中的文件不能直接通过 Web 服务器访问;当列出私有文件时,链接是 Drupal 路径请求。这增加了服务器加载和下载时间,因为 Drupal 必须解析每个文件下载请求的路径,但允许访问限制。
公共文件的最佳做法是将它们存储在多站点目录中,例如:sites/default/files
为您的文件安全地添加私有目录的默认方法是使用您的 Web 服务器无法直接访问但 Drupal 可以访问的目录。理想情况下,该目录应位于 Drupal 根文件夹之外。
为文件添加私有目录的简单方法是在公共目录下创建一个子目录,例如:sites/default/files/private
当您在 admin/config/media/file-system 中指定私有目录时,它会自动创建子目录并创建一个简单的 .htaccess 文件,并拒绝所有。这会阻止 Apache 从此目录提供文件。确保通过将文件添加到该目录并验证您不能直接浏览该目录来对此进行测试。如果这不起作用,任何可以猜到 URL 的人都可以访问此目录中的所有文件!请注意,非 Apache Web 服务器可能需要额外的配置来保护私有文件目录。
访问私人文件
配置后,无法通过直接链接访问存储在私有目录中的文件;但是,如果 Drupal 构造了一个指向该文件的链接,那么任何可以看到该链接的人都可以访问该文件。
例如:您创建了一个新的内容类型,其中包含一个文件字段,该字段将文件存储在您站点的私有文件目录中。接下来,您从这个新的内容类型创建一个节点并附加两个新文件。当节点发布时,两个附加文件的链接都是可见的,任何可以查看该节点的人都可以下载这些文件。现在,如果您取消发布该节点,即使您使用指向在发布该节点时有效的文件的直接链接,所有附加文件也将无法下载。
重新发布节点,并禁用其中一个文件的“显示”复选框。保存节点。现在,一个文件可供公共下载访问,而另一个文件不可访问——即使您拥有未列出的文件的直接 URL,您也无法下载该文件。
为了更精细地控制谁可以查看/下载附件,您将需要一个额外的访问控制模块。您可以自己编写模块,或使用贡献的模块,例如Content Access。