mirror of https://github.com/zulip/zulip.git
s3: Allow setting a CloudFront URL prefix for avatar and emoji images.
This commit is contained in:
parent
08b24484d1
commit
5cd10ce51d
|
@ -154,6 +154,15 @@ class S3UploadBackend(ZulipUploadBackend):
|
|||
# hundreds of avatar URLs in single `GET /messages` request,
|
||||
# we instead back-compute the URL pattern here.
|
||||
|
||||
# The S3_AVATAR_PUBLIC_URL_PREFIX setting is used to override
|
||||
# this prefix, for instance if a CloudFront distribution is
|
||||
# used.
|
||||
if settings.S3_AVATAR_PUBLIC_URL_PREFIX is not None:
|
||||
prefix = settings.S3_AVATAR_PUBLIC_URL_PREFIX
|
||||
if not prefix.endswith("/"):
|
||||
prefix += "/"
|
||||
return prefix
|
||||
|
||||
DUMMY_KEY = "dummy_key_ignored"
|
||||
|
||||
# We do not access self.avatar_bucket.meta.client directly,
|
||||
|
|
|
@ -247,6 +247,25 @@ class S3Test(ZulipTestCase):
|
|||
body = f"First message ...[zulip.txt](http://{hamlet.realm.host}" + url + ")"
|
||||
self.send_stream_message(hamlet, "Denmark", body, "test")
|
||||
|
||||
@use_s3_backend
|
||||
def test_user_avatars_base(self) -> None:
|
||||
backend = zerver.lib.upload.upload_backend
|
||||
assert isinstance(backend, S3UploadBackend)
|
||||
self.assertEqual(
|
||||
backend.construct_public_upload_url_base(),
|
||||
f"https://{settings.S3_AVATAR_BUCKET}.s3.amazonaws.com/",
|
||||
)
|
||||
|
||||
with self.settings(S3_AVATAR_PUBLIC_URL_PREFIX="https://avatars.example.com"):
|
||||
self.assertEqual(
|
||||
backend.construct_public_upload_url_base(), "https://avatars.example.com/"
|
||||
)
|
||||
|
||||
with self.settings(S3_AVATAR_PUBLIC_URL_PREFIX="https://avatars.example.com/"):
|
||||
self.assertEqual(
|
||||
backend.construct_public_upload_url_base(), "https://avatars.example.com/"
|
||||
)
|
||||
|
||||
@use_s3_backend
|
||||
def test_user_avatars_redirect(self) -> None:
|
||||
create_s3_buckets(settings.S3_AVATAR_BUCKET)[0]
|
||||
|
|
|
@ -161,6 +161,7 @@ S3_UPLOADS_STORAGE_CLASS: Literal[
|
|||
"STANDARD",
|
||||
"STANDARD_IA",
|
||||
] = "STANDARD"
|
||||
S3_AVATAR_PUBLIC_URL_PREFIX: Optional[str] = None
|
||||
LOCAL_UPLOADS_DIR: Optional[str] = None
|
||||
LOCAL_AVATARS_DIR: Optional[str] = None
|
||||
LOCAL_FILES_DIR: Optional[str] = None
|
||||
|
|
|
@ -790,6 +790,7 @@ LOCAL_UPLOADS_DIR = "/home/zulip/uploads"
|
|||
# S3_AVATAR_BUCKET = ""
|
||||
# S3_REGION = None
|
||||
# S3_ENDPOINT_URL = None
|
||||
# S3_AVATAR_PUBLIC_URL_PREFIX = None
|
||||
# S3_ADDRESSING_STYLE = "auto"
|
||||
# S3_SKIP_PROXY = True
|
||||
# S3_UPLOADS_STORAGE_CLASS = "STANDARD"
|
||||
|
|
Loading…
Reference in New Issue