summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author和風ドレッシング <37681609+CookieRamen@users.noreply.github.com>2019-12-20 01:54:28 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2019-12-20 01:54:28 +0900
commit9bc07c1a1ce8c82c7f0d00a78a00f9c6e6a22b1f (patch)
tree39bbcf7cc4e6ac9d5e7048de5fd9ba059e2792a5
parent/files/ 下のヘッダ設定タイミングを修正 (#5650) (diff)
downloadsharkey-9bc07c1a1ce8c82c7f0d00a78a00f9c6e6a22b1f.tar.gz
sharkey-9bc07c1a1ce8c82c7f0d00a78a00f9c6e6a22b1f.tar.bz2
sharkey-9bc07c1a1ce8c82c7f0d00a78a00f9c6e6a22b1f.zip
Media Proxy を実装 (#5649)
* Media Proxy を実装 * サンプルを追加
-rw-r--r--.config/example.yml3
-rw-r--r--src/config/types.ts2
-rw-r--r--src/models/repositories/drive-file.ts7
3 files changed, 11 insertions, 1 deletions
diff --git a/.config/example.yml b/.config/example.yml
index 44d798bc8d..f75224bf77 100644
--- a/.config/example.yml
+++ b/.config/example.yml
@@ -140,3 +140,6 @@ autoAdmin: true
#proxySmtp: http://127.0.0.1:3128 # use HTTP/1.1 CONNECT
#proxySmtp: socks4://127.0.0.1:1080 # use SOCKS4
#proxySmtp: socks5://127.0.0.1:1080 # use SOCKS5
+
+# Media Proxy
+#mediaProxy: http://127.0.0.1:3000
diff --git a/src/config/types.ts b/src/config/types.ts
index e766d1f14a..2bf94af742 100644
--- a/src/config/types.ts
+++ b/src/config/types.ts
@@ -52,6 +52,8 @@ export type Source = {
host: string;
port: number;
};
+
+ mediaProxy?: string;
};
/**
diff --git a/src/models/repositories/drive-file.ts b/src/models/repositories/drive-file.ts
index 702f195e9d..a20d393044 100644
--- a/src/models/repositories/drive-file.ts
+++ b/src/models/repositories/drive-file.ts
@@ -6,6 +6,7 @@ import { toPuny } from '../../misc/convert-host';
import { ensure } from '../../prelude/ensure';
import { awaitAll } from '../../prelude/await-all';
import { SchemaType } from '../../misc/schema';
+import config from '../../config';
export type PackedDriveFile = SchemaType<typeof packedDriveFileSchema>;
@@ -22,7 +23,11 @@ export class DriveFileRepository extends Repository<DriveFile> {
}
public getPublicUrl(file: DriveFile, thumbnail = false): string | null {
- return thumbnail ? (file.thumbnailUrl || file.webpublicUrl || null) : (file.webpublicUrl || file.url);
+ let url = thumbnail ? (file.thumbnailUrl || file.webpublicUrl || null) : (file.webpublicUrl || file.url);
+ if (file.src !== null && file.userHost !== null && config.mediaProxy !== null) {
+ url = `${config.mediaProxy}/${thumbnail ? 'thumbnail' : ''}?url=${file.src}`;
+ }
+ return url;
}
public async clacDriveUsageOf(user: User['id'] | User): Promise<number> {