Skip to content

Commit

Permalink
cors_policy_modeとallow_originをgenerate_appの引数にする (#500)
Browse files Browse the repository at this point in the history
* cors_policy_modeとallow_originをgenerate_appの引数にする

* breakpoint()
  • Loading branch information
Hiroshiba committed Nov 1, 2022
1 parent 50a8e9a commit 0dec9dc
Showing 1 changed file with 22 additions and 7 deletions.
29 changes: 22 additions & 7 deletions run.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import traceback
import zipfile
from distutils.version import LooseVersion
from enum import Enum
from functools import lru_cache
from io import TextIOWrapper
from pathlib import Path
Expand Down Expand Up @@ -65,6 +66,11 @@
)


class CorsPolicyMode(str, Enum):
all = "all"
localapps = "localapps"


def b64encode_str(s):
return base64.b64encode(s).decode("utf-8")

Expand Down Expand Up @@ -98,6 +104,8 @@ def generate_app(
synthesis_engines: Dict[str, SynthesisEngineBase],
latest_core_version: str,
root_dir: Optional[Path] = None,
cors_policy_mode: CorsPolicyMode = CorsPolicyMode.localapps,
allow_origin: Optional[List[str]] = None,
) -> FastAPI:
if root_dir is None:
root_dir = engine_root()
Expand All @@ -112,11 +120,11 @@ def generate_app(

# CORS設定
allowed_origins = ["*"]
if args.cors_policy_mode == "localapps":
if cors_policy_mode == "localapps":
allowed_origins = ["app://."]
if args.allow_origin:
allowed_origins += args.allow_origin
if "*" in args.allow_origin:
if allow_origin is not None:
allowed_origins += allow_origin
if "*" in allow_origin:
print(
'WARNING: Deprecated use of argument "*" in allow_origin. '
'Use option "--cors_policy_mod all" instead. See "--help" for more.',
Expand Down Expand Up @@ -916,8 +924,9 @@ def engine_manifest():

parser.add_argument(
"--cors_policy_mode",
choices=["all", "localapps"],
default="localapps",
type=CorsPolicyMode,
choices=list(CorsPolicyMode),
default=CorsPolicyMode.localapps,
help="allまたはlocalappsを指定。allはすべてを許可します。"
"localappsはオリジン間リソース共有ポリシーを、app://.とlocalhost関連に限定します。"
"その他のオリジンはallow_originオプションで追加できます。デフォルトはlocalapps。",
Expand Down Expand Up @@ -952,7 +961,13 @@ def engine_manifest():

root_dir = args.voicevox_dir if args.voicevox_dir is not None else engine_root()
uvicorn.run(
generate_app(synthesis_engines, latest_core_version, root_dir=root_dir),
generate_app(
synthesis_engines,
latest_core_version,
root_dir=root_dir,
cors_policy_mode=args.cors_policy_mode,
allow_origin=args.allow_origin,
),
host=args.host,
port=args.port,
)

0 comments on commit 0dec9dc

Please sign in to comment.