ASGI S3 存储库
项目描述
asgi-s3
正在进行中:目前这里的大部分内容都将发生变化,不建议在此阶段进行任何严重使用。
需求:Python 3.6+
安装
pip install asgi-s3
...但你现在可能只想克隆master
分支。
CLI
s3 create-bucket Create a new S3 bucket.
s3 list-buckets List all S3 buckets.
s3 sync-bucket Sync a bucket with a local static file directory.
...待办
中间件
该中间件旨在与任何ASGI应用一起使用。以下是一个原始的ASGI示例
from asgi_s3.middleware import S3StorageMiddleware, s3_url_for
AWS_ACCESS_KEY_ID = "access-key-id"
AWS_SECRET_ACCESS_KEY = "secret-access-key"
BUCKET_NAME = "my-bucket"
REGION_NAME = "region-name"
STATIC_DIR = "path/to/static/files"
async def app(scope, receive, send):
await send(
{
"type": "http.response.start",
"status": 200,
"headers": [[b"content-type", b"text/html; charset=utf-8"]],
}
)
html_content = f"""
<!DOCTYPE html>
<html>
<head>
<title>ASGI S3 example</title>
<link rel="stylesheet" href="{s3_url_for('style.css')}">
</head>
<body>
Hello, world.
</body>
</html>
"""
await send({"type": "http.response.body", "body": html_content.encode()})
app = S3StorageMiddleware(
app,
bucket_name=BUCKET_NAME,
static_dir=STATIC_DIR,
region_name=REGION_NAME,
aws_access_key_id=AWS_ACCESS_KEY_ID,
aws_secret_access_key=AWS_SECRET_ACCESS_KEY,
)
以下是一个使用Starlette的示例
from starlette.applications import Starlette
from starlette.templating import Jinja2Templates
from asgi_s3.middleware import S3StorageMiddleware, s3_url_for
templates = Jinja2Templates("templates")
app = Starlette()
@app.route("/")
def homepage(request):
return templates.TemplateResponse(
"index.html", {"request": request, "s3_url_for": s3_url_for}
)
AWS_ACCESS_KEY_ID = "access-key-id"
AWS_SECRET_ACCESS_KEY = "secret-access-key"
BUCKET_NAME = "my-bucket"
REGION_NAME = "region-name"
STATIC_DIR = "path/to/static/files"
app.add_middleware(
S3StorageMiddleware,
bucket_name=BUCKET_NAME,
static_dir=STATIC_DIR,
region_name=REGION_NAME,
aws_access_key_id=AWS_ACCESS_KEY_ID,
aws_secret_access_key=AWS_SECRET_ACCESS_KEY,
)
项目详情
关闭
asgi-s3-0.0.3.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | fb6c3dbf83136b9f424d63a75ae66218349c2fc217a7e3dcdf73c69931bbf4c3 |
|
MD5 | 8f369f72a2dcf1d846f3bc9557e43e3e |
|
BLAKE2b-256 | c3ddae950e795429cf1b1c2693edbf77400a64387fe8271c02e56ebee18758f8 |