Ubuntu 无法通过apache访问已装入的s3 bucket文件 我的aws acc上有一个S3桶 我正在使用s3cmd接口将文件上传到bucket

Ubuntu 无法通过apache访问已装入的s3 bucket文件 我的aws acc上有一个S3桶 我正在使用s3cmd接口将文件上传到bucket,ubuntu,amazon-web-services,amazon-ec2,s3fs,Ubuntu,Amazon Web Services,Amazon Ec2,S3fs,我使用s3fs将s3 bucket装载到一个ubuntu ec2实例上,我成功地完成了它,并且能够在我的ec2实例上列出s3 bucket s3fs命令-s3fs XXXXXX-ouse_cache=/tmp/s3cache-oallow_other-opasswd_file=/etc/passwd-s3fs-ourl=-odefault\u acl=公共读写/mnt/XXXXXXXX 在ec2上安装了apache2。将文档目录更改为安装在s3路径-/mnt/XXXXXXXX上的路径。我已经成功

我使用s3fs将s3 bucket装载到一个ubuntu ec2实例上,我成功地完成了它,并且能够在我的ec2实例上列出s3 bucket

s3fs命令-s3fs XXXXXX-ouse_cache=/tmp/s3cache-oallow_other-opasswd_file=/etc/passwd-s3fs-ourl=-odefault\u acl=公共读写/mnt/XXXXXXXX

  • 在ec2上安装了apache2。将文档目录更改为安装在s3路径-/mnt/XXXXXXXX上的路径。我已经成功地配置了相同的,并重新启动了apache2服务

  • 但是,当我尝试使用apache2访问S3文件时,我得到“禁止您没有权限访问此服务器上的/temp/xxxxTesting.flv”。


    有人能帮我解决这个问题吗。这一问题的任何可能原因。我尝试了所有的建议,但都白费了。请有人指导我如何解决这个问题?

    s3fs不是块设备。当您试图访问临时目录时,它会将文件复制到临时目录下。它不像NFS那样工作


    您可以使用s3fs在s3之间复制文件,但不应直接从s3fs运行应用程序。

    s3fs不是块设备。当您试图访问临时目录时,它会将文件复制到临时目录下。它不像NFS那样工作


    您可以使用s3fs将文件复制到s3或从s3fs复制文件,但您不应该直接从s3fs运行应用程序。

    我建议您看看新的项目RioFS(用户空间s3文件系统):。本项目是“s3fs”替代方案,与“s3fs”相比的主要优势是:简单、操作速度快、代码无bug。目前该项目处于“测试”状态,但它已经在几个高负载文件服务器上运行了相当长的一段时间

    如果您在访问Apache文件时遇到任何问题,请在GitHub页面上创建一个票证


    希望有帮助

    我想建议大家看看新的项目RioFS(userspaces3文件系统):。本项目是“s3fs”替代方案,与“s3fs”相比的主要优势是:简单、操作速度快、代码无bug。目前该项目处于“测试”状态,但它已经在几个高负载文件服务器上运行了相当长的一段时间

    如果您在访问Apache文件时遇到任何问题,请在GitHub页面上创建一个票证


    希望有帮助

    您的问号钥匙似乎卡住了

    S3不是块设备,也不是文件系统,使用s3fs或任何其他文件系统仿真器提供文件服务永远不会给您带来最佳性能

    幸运的是,有一个更简单的解决方案

    我的图像文件位于/var/content/images中

    如果从my-web-site.com/images/any/path/here.jpg.jpeg或.gif获取文件,则我的本地apache服务器会检查/var/content/images/any/path/here.jpg是否实际上是本地硬盘上的文件。如果是,apache将提供本地文件

    如果它不是本地文件,那么apache使用HTTP从S3存储桶获取该文件(
    [p]
    用于代理),当然,HTTP是S3的本机接口,apache也可以非常有效地处理该文件

    如果文件也不在S3中,apache将返回错误页面,当我们试图从S3中获取文件时,S3 bucket将返回该页面。完成,基本上在3行配置中:

    RewriteEngine on
    RewriteCond /var/content%{REQUEST_FILENAME} !-f
    RewriteRule ^/images/(.*[gif|jpe?g])$ http://my-bucket-name.s3-website-us-east-1.amazonaws.com/images/$1 [P]
    
    在我看来,这种方法似乎比尝试用s3fs破解相同的功能要简单得多


    请注意,在我的一些系统上,我需要在%{REQUEST_FILENAME}之前预先设置物理路径,而有些系统则不需要。我还没有详细说明为什么会这样,但请注意,不同的环境可能需要不同的设置。您还需要提供适当的模块,并且示例中的正则表达式仅适用于以gif jpeg和jpg结尾的文件名。

    您的问号键似乎被卡住了

    S3不是块设备,也不是文件系统,使用s3fs或任何其他文件系统仿真器提供文件服务永远不会给您带来最佳性能

    幸运的是,有一个更简单的解决方案

    我的图像文件位于/var/content/images中

    如果从my-web-site.com/images/any/path/here.jpg.jpeg或.gif获取文件,则我的本地apache服务器会检查/var/content/images/any/path/here.jpg是否实际上是本地硬盘上的文件。如果是,apache将提供本地文件

    如果它不是本地文件,那么apache使用HTTP从S3存储桶获取该文件(
    [p]
    用于代理),当然,HTTP是S3的本机接口,apache也可以非常有效地处理该文件

    如果文件也不在S3中,apache将返回错误页面,当我们试图从S3中获取文件时,S3 bucket将返回该页面。完成,基本上在3行配置中:

    RewriteEngine on
    RewriteCond /var/content%{REQUEST_FILENAME} !-f
    RewriteRule ^/images/(.*[gif|jpe?g])$ http://my-bucket-name.s3-website-us-east-1.amazonaws.com/images/$1 [P]
    
    在我看来,这种方法似乎比尝试用s3fs破解相同的功能要简单得多


    请注意,在我的一些系统上,我需要在%{REQUEST_FILENAME}之前预先设置物理路径,而有些系统则不需要。我还没有详细说明为什么会这样,但请注意,不同的环境可能需要不同的设置。您还需要提供适当的模块,示例中的正则表达式仅适用于以gif jpeg和jpg结尾的文件名。

    我使用的是最新版本的s3fs-1.71我使用的是最新版本的s3fs-1.71关于如何使用apache2完成服务s3文件的任务的任何建议。这将非常有助于任何关于如何完成使用apache2服务s3文件的任务的建议。这将极大地帮助它成为一个媒体文件,每个文件大约700-800MB。我想要有URL认证机制。这个解决方案适合su吗