跳转到主要内容

无服务器文件服务器

项目描述

tuxpub

Pipeline Status coverage report PyPI version Code style: black PyPI - License

无服务器文件服务器

tuxpub是一个Python/Flask应用程序,它为S3提供文件浏览界面,并设计为与Zappa一起以无服务器方式运行。

可以在storage.lkft.org找到tuxpub的一个示例部署。

配置

配置通过环境变量处理。以下配置变量被使用。

  • S3_BUCKET
    • 必需:True
    • 描述:包含要提供文件的S3桶名称。例如:storage.staging.lkft.org
  • S3_REGION
    • 必需:True
    • 描述:包含S3桶的区域。例如:us-east-1
  • ROOT_INDEX_LISTING
    • 必需:False
    • 描述:默认为True。设置为False以隐藏顶层目录/文件列表。
  • SITE_TITLE
    • 必需:False
    • 描述:默认为Tuxpub。设置为全局站点标题的任何您喜欢的内容。

本地运行

要本地运行,请安装tuxpub,确保环境中有AWS访问权限,然后运行

S3_BUCKET=storage.staging.lkft.org S3_REGION=us-east-1 ROOT_INDEX_LISTING=True FLASK_APP=tuxpub flask run

使用Zappa运行

此应用程序旨在与Zappa一起运行和部署,并由AWS API网关Lambda托管。

要使用Zappa,创建一个名为zappa_init.py的应用程序shim

# When using a flask app factory, this file is required.
# See https://github.com/Miserlou/Zappa/issues/1771
# and https://github.com/Miserlou/Zappa/pull/1775
from tuxpub import create_app
app = create_app()

一个示例zappa_settings.json文件可能看起来像

{
    "dev": {
        "app_function": "zappa_init.app",
        "aws_region": "us-east-1",
        "project_name": "lkft-tuxpub",
        "runtime": "python3.7",
        "s3_bucket": "zappa-tuxpub",
        "environment_variables": {
          "S3_BUCKET": "storage.dev.lkft.org",
          "S3_REGION": "us-east-1",
          "ROOT_INDEX_LISTING": "True",
        }
    }
}

功能

导出格式

默认情况下,页面使用HTML提供服务。如果将export=json附加到列表URL,将提供页面的JSON表示。当请求特定文件时,此选项将被忽略。

示例

curl http://localhost/path/to/files/?export=json

根索引列表

默认情况下,此应用程序将在根页面上显示目录和文件。但是,用户可能不希望允许人们爬取S3存储桶。您可以将ROOT_INDEX_LISTING=False设置为,这将渲染一个空白的根索引页面。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

tuxpub-0.1.11.tar.gz (9.6 kB 查看哈希值)

上传时间

构建分布

tuxpub-0.1.11-py3-none-any.whl (9.9 kB 查看哈希值)

上传时间 Python 3

由以下组织支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面