{"id":13615852,"url":"https://github.com/pottava/aws-s3-proxy","last_synced_at":"2025-09-11T17:42:00.606Z","repository":{"id":4019955,"uuid":"51703546","full_name":"pottava/aws-s3-proxy","owner":"pottava","description":"Reverse proxy for AWS S3 with basic authentication.","archived":false,"fork":false,"pushed_at":"2023-06-10T08:36:49.000Z","size":108,"stargazers_count":329,"open_issues_count":33,"forks_count":117,"subscribers_count":11,"default_branch":"master","last_synced_at":"2025-03-29T08:06:48.182Z","etag":null,"topics":["aws-s3","basic-authentication","http2","https","proxy-server","webapp"],"latest_commit_sha":null,"homepage":"https://hub.docker.com/r/pottava/s3-proxy/","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pottava.png","metadata":{"files":{"readme":"README-ja.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2016-02-14T16:57:33.000Z","updated_at":"2025-03-13T08:27:38.000Z","dependencies_parsed_at":"2023-07-06T14:46:11.981Z","dependency_job_id":null,"html_url":"https://github.com/pottava/aws-s3-proxy","commit_stats":{"total_commits":78,"total_committers":19,"mean_commits":4.105263157894737,"dds":0.3589743589743589,"last_synced_commit":"e0c3c7855adb981b3fac9a7d38a3eabb51d72127"},"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pottava%2Faws-s3-proxy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pottava%2Faws-s3-proxy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pottava%2Faws-s3-proxy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pottava%2Faws-s3-proxy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pottava","download_url":"https://codeload.github.com/pottava/aws-s3-proxy/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247312078,"owners_count":20918344,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aws-s3","basic-authentication","http2","https","proxy-server","webapp"],"created_at":"2024-08-01T20:01:19.046Z","updated_at":"2025-04-05T09:07:37.502Z","avatar_url":"https://github.com/pottava.png","language":"Go","funding_links":[],"categories":["HarmonyOS"],"sub_categories":["Windows Manager"],"readme":"# Basic 認証も可能な AWS S3 へのリバースプロキシ\n\n[![pottava/s3-proxy](http://dockeri.co/image/pottava/s3-proxy)](https://hub.docker.com/r/pottava/s3-proxy/)\n\n\n## 概要\n\n指定した S3 バケット にリバースプロキシする Web サービスです。  \nAPI 経由でアクセスするため、バケットに静的 Web サイトホスティングの設定は不要です。  \nオプションでフロントに Basic 認証がかけられます。\n\nhttp://this-proxy.com/access/ -\u003e s3://bucket/access/index.html\n\n\n## 使い方\n\n### 1. 環境変数をセットします\n\n環境変数                   | 説明                                             | 必須    | 初期値\n------------------------- | ----------------------------------------------- | ------ | ---\nAWS_S3_BUCKET             | プロキシ先の S3 バケット                           | *       |\nAWS_S3_KEY_PREFIX         | S3 オブジェクトにプリフィクス文字列があるなら指定       |        | -\nAWS_REGION                | バケットの存在する AWS リージョン                    |        | us-east-1\nAWS_ACCESS_KEY_ID         | API を使うための AWS アクセスキー                   |        | EC2 インスタンスロール\nAWS_SECRET_ACCESS_KEY     | API を使うための AWS シークレットキー                |        | EC2 インスタンスロール\nAWS_API_ENDPOINT          | API 接続先エンドポイント（通常指定する必要なし）       |          | -\nINDEX_DOCUMENT            | インデックスドキュメントの名前                       |          | index.html\nDIRECTORY_LISTINGS        | / で終わる URL の場合、ファイル一覧を返す             |          | false\nDIRECTORY_LISTINGS_FORMAT | `html` がセットされていたらファイル一覧を HTML で返す |       | -\nHTTP_CACHE_CONTROL        | S3 の `Cache-Control` 属性を上書きして返します      |        | S3 オブジェクト属性値\nHTTP_EXPIRES              | S3 の `Expires` 属性を上書きして返します            |        | S3 オブジェクト属性値\nBASIC_AUTH_USER           | Basic 認証をかけるなら、その `ユーザ名`              |        | -\nBASIC_AUTH_PASS           | Basic 認証をかけるなら、その `パスワード`            |        | -\nSSL_CERT_PATH             | TLS を有効にしたいなら、その `cert.pem` へのパス     |        | -\nSSL_KEY_PATH              | TLS を有効にしたいなら、その `key.pem` へのパス      |        | -\nCORS_ALLOW_ORIGIN  | CORS を有効にしたいなら、リソースへのアクセスを許可する URI |        | -\nCORS_ALLOW_METHODS | CORS を有効にしたいなら、許可する [HTTP request methods](https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html)のカンマ区切りのリスト |        | -\nCORS_ALLOW_HEADERS | CORS を有効にしたいなら、サポートするヘッダーのカンマ区切りのリスト |        | -\nCORS_MAX_AGE       | CORS における preflight リクエスト結果のキャッシュ上限時間(秒) |        | 600\nAPP_PORT                  | このサービスが待機する `ポート番号`                  |        | 80\nACCESS_LOG                | 標準出力へアクセスログを送る                        |        | false\nSTRIP_PATH                | 指定した Prefix を S3 のパスから削除                |         | -\nCONTENT_ENCODING          | リクエストが許可していればレスポンスを圧縮します       |        | true\nHEALTHCHECK_PATH          | 指定すると Basic 認証設定の有無などに依らず 200 OK を返します |   | -\nGET_ALL_PAGES_IN_DIR      | 指定ディレクトリの全てのオブジェクトを返す             |          | false\nMAX_IDLE_CONNECTIONS      | S3 への利用が終わったコネクションの最大保持数          |       | 150\nIDLE_CONNECTION_TIMEOUT   | S3 への接続タイムアウト                            |          | 10\nDISABLE_COMPRESSION       | S3 との間の Content-Encoding を無効にします         |          | true\nINSECURE_TLS              | TLS 証明書の正当性チェックをスキップします             |          | false\n\n### 2. アプリを起動します\n\n`docker run -d -p 8080:80 -e AWS_REGION -e AWS_S3_BUCKET pottava/s3-proxy`\n\n* Basic 認証をつけるなら:\n\n`docker run -d -p 8080:80 -e AWS_REGION -e AWS_S3_BUCKET -e BASIC_AUTH_USER -e BASIC_AUTH_PASS pottava/s3-proxy`\n\n* TLS を有効にしたいなら:\n\n`docker run -d -p 8080:80 -e AWS_REGION -e AWS_S3_BUCKET -e SSL_CERT_PATH -e SSL_KEY_PATH pottava/s3-proxy`\n\n* CORS を有効にしたいなら:\n\n`docker run -d -p 8080:80 -e CORS_ALLOW_ORIGIN -e CORS_ALLOW_METHODS -e CORS_ALLOW_HEADERS -e CORS_MAX_AGE pottava/s3-proxy`\n\n* docker-compose.yml として使うなら:\n\n```\nproxy:\n  image: pottava/s3-proxy\n  ports:\n    - 8080:80\n  environment:\n    - AWS_REGION=ap-northeast-1\n    - AWS_ACCESS_KEY_ID\n    - AWS_SECRET_ACCESS_KEY\n    - AWS_S3_BUCKET\n    - BASIC_AUTH_USER=admin\n    - BASIC_AUTH_PASS=password\n    - ACCESS_LOG=true\n  container_name: proxy\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpottava%2Faws-s3-proxy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpottava%2Faws-s3-proxy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpottava%2Faws-s3-proxy/lists"}