From 43b325d2d583e87c3ebb0bfd7346f41ecef6c59e Mon Sep 17 00:00:00 2001 From: imhao183 Date: Wed, 19 May 2021 14:02:49 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E9=85=8D=E7=BD=AE=E9=A1=B9?= =?UTF-8?q?=EF=BC=8C=E5=8F=AF=E4=BB=A5=E4=B8=BA=E5=86=85=E5=AD=98=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E5=AD=98=E5=82=A8=E6=B7=BB=E5=8A=A0=E8=BF=9C=E7=A8=8B?= =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E5=9C=B0=E5=9D=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- broker/config/wildfirechat.conf | 5 +++++ broker/src/main/java/io/moquette/BrokerConstants.java | 2 ++ .../imhandler/GetMediaUploadTokenHandler.java | 11 +++++++++-- broker/src/main/java/io/moquette/server/Server.java | 1 + .../io/moquette/server/config/MediaServerConfig.java | 1 + distribution/src/main/resources/wildfirechat.conf | 6 +++++- 6 files changed, 23 insertions(+), 3 deletions(-) diff --git a/broker/config/wildfirechat.conf b/broker/config/wildfirechat.conf index c973de26..2cc1b3d9 100755 --- a/broker/config/wildfirechat.conf +++ b/broker/config/wildfirechat.conf @@ -183,6 +183,11 @@ qiniu.bucket_favorite_domain http://cdn2.wildfirechat.cn # local media server configuration # 本地媒体服务器配置。 local.media.storage.root media +# 如果使用内置文件存储,文件上传后地址默认为 http://server.ip:http_port/fs/5/2021/03/27/08/filename。 +# 如果需要使用nginx添加https支持,请打开下面配置,这样客户端得到的文件地址为 https://example.com/media/fs/5/2021/03/27/08/filename。 +# 需要nginx把请求从https://example.com/media/fs 转到 http://server.ip:http_port/fs。注意需要带上所有header。 +# 尽管内置文件存储可以使用,但是我们还是建议使用专业级别的对象存储服务,社区版可以使用七牛,专业版另外支持阿里云和也是私有对象存储。详情请参考 https://docs.wildfirechat.cn/server/oss.html +# local.media.storage.remote_server_url https://example.com/media # 是否支持多端登陆,为true时支持任意平台任意多个客户端同时登录;为false时每个平台只支持一个端登录,但不同平台可以同时登录。 server.multi_endpoint false diff --git a/broker/src/main/java/io/moquette/BrokerConstants.java b/broker/src/main/java/io/moquette/BrokerConstants.java index 065972d3..bd0e6ad5 100755 --- a/broker/src/main/java/io/moquette/BrokerConstants.java +++ b/broker/src/main/java/io/moquette/BrokerConstants.java @@ -85,6 +85,8 @@ public final class BrokerConstants { public static final String QINIU_BUCKET_FAVORITE_DOMAIN = "qiniu.bucket_favorite_domain"; public static final String FILE_STORAGE_ROOT = "local.media.storage.root"; + public static final String FILE_STORAGE_REMOTE_SERVER_URL = "local.media.storage.remote_server_url"; + public static final String USER_QINIU = "media.server.use_qiniu"; public static final String PUSH_ANDROID_SERVER_ADDRESS = "push.android.server.address"; diff --git a/broker/src/main/java/io/moquette/imhandler/GetMediaUploadTokenHandler.java b/broker/src/main/java/io/moquette/imhandler/GetMediaUploadTokenHandler.java index 513b581d..ec919005 100644 --- a/broker/src/main/java/io/moquette/imhandler/GetMediaUploadTokenHandler.java +++ b/broker/src/main/java/io/moquette/imhandler/GetMediaUploadTokenHandler.java @@ -10,12 +10,15 @@ package io.moquette.imhandler; import cn.wildfirechat.common.ErrorCode; import cn.wildfirechat.proto.WFCMessage; +import com.hazelcast.util.StringUtil; import com.qiniu.util.Auth; import com.xiaoleilu.loServer.action.UploadFileAction; import io.moquette.server.config.MediaServerConfig; import io.moquette.spi.impl.Qos1PublishHandler; import io.netty.buffer.ByteBuf; +import static io.moquette.server.config.MediaServerConfig.FILE_STROAGE_REMOTE_SERVER_URL; + @Handler("GMUT") public class GetMediaUploadTokenHandler extends IMHandler { @Override @@ -80,8 +83,12 @@ public class GetMediaUploadTokenHandler extends IMHandler 0; } diff --git a/broker/src/main/java/io/moquette/server/config/MediaServerConfig.java b/broker/src/main/java/io/moquette/server/config/MediaServerConfig.java index fd32a60d..7bde5721 100755 --- a/broker/src/main/java/io/moquette/server/config/MediaServerConfig.java +++ b/broker/src/main/java/io/moquette/server/config/MediaServerConfig.java @@ -27,6 +27,7 @@ public class MediaServerConfig { public static String SERVER_IP = "localhost"; public static int HTTP_SERVER_PORT = 8080; public static String FILE_STROAGE_ROOT = "fs"; + public static String FILE_STROAGE_REMOTE_SERVER_URL; public static boolean USER_QINIU = false; diff --git a/distribution/src/main/resources/wildfirechat.conf b/distribution/src/main/resources/wildfirechat.conf index f64740df..42d5edb3 100755 --- a/distribution/src/main/resources/wildfirechat.conf +++ b/distribution/src/main/resources/wildfirechat.conf @@ -180,7 +180,11 @@ qiniu.bucket_favorite_domain http://cdn2.wildfirechat.cn # local media server configuration # 本地媒体服务器配置。 local.media.storage.root ./media - +# 如果使用内置文件存储,文件上传后地址默认为 http://server.ip:http_port/fs/5/2021/03/27/08/filename。 +# 如果需要使用nginx添加https支持,请打开下面配置,这样客户端得到的文件地址为 https://example.com/media/fs/5/2021/03/27/08/filename。 +# 需要nginx把请求从https://example.com/media/fs 转到 http://server.ip:http_port/fs。注意需要带上所有header。 +# 尽管内置文件存储可以使用,但是我们还是建议使用专业级别的对象存储服务,社区版可以使用七牛,专业版另外支持阿里云和也是私有对象存储。详情请参考 https://docs.wildfirechat.cn/server/oss.html +# local.media.storage.remote_server_url https://example.com/media # 是否支持多端登陆,为true时支持任意平台任意多个客户端同时登录;为false时每个平台只支持一个端登录,但不同平台可以同时登录。 server.multi_endpoint false