mirror of
https://iceshrimp.dev/limepotato/jormungandr-bite.git
synced 2024-11-13 13:37:31 -07:00
Option objectStorageSetPublicRead (#6645)
This commit is contained in:
parent
e72d575f58
commit
ebab43ae45
7 changed files with 34 additions and 0 deletions
|
@ -468,6 +468,7 @@ objectStorageUseSSL: "SSLを使用する"
|
||||||
objectStorageUseSSLDesc: "API接続にhttpsを使用しない場合はオフにしてください"
|
objectStorageUseSSLDesc: "API接続にhttpsを使用しない場合はオフにしてください"
|
||||||
objectStorageUseProxy: "Proxyを利用する"
|
objectStorageUseProxy: "Proxyを利用する"
|
||||||
objectStorageUseProxyDesc: "API接続にproxyを利用しない場合はオフにしてください"
|
objectStorageUseProxyDesc: "API接続にproxyを利用しない場合はオフにしてください"
|
||||||
|
objectStorageSetPublicRead: "アップロード時に'public-read'を設定する"
|
||||||
serverLogs: "サーバーログ"
|
serverLogs: "サーバーログ"
|
||||||
deleteAll: "全て削除"
|
deleteAll: "全て削除"
|
||||||
showFixedPostForm: "タイムライン上部に投稿フォームを表示する"
|
showFixedPostForm: "タイムライン上部に投稿フォームを表示する"
|
||||||
|
|
14
migration/1597230137744-objectStorageSetPublicRead.ts
Normal file
14
migration/1597230137744-objectStorageSetPublicRead.ts
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||||
|
|
||||||
|
export class objectStorageSetPublicRead1597230137744 implements MigrationInterface {
|
||||||
|
name = 'objectStorageSetPublicRead1597230137744'
|
||||||
|
|
||||||
|
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
await queryRunner.query(`ALTER TABLE "meta" ADD "objectStorageSetPublicRead" boolean NOT NULL DEFAULT false`);
|
||||||
|
}
|
||||||
|
|
||||||
|
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "objectStorageSetPublicRead"`);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -161,6 +161,7 @@
|
||||||
</div>
|
</div>
|
||||||
<mk-switch v-model="objectStorageUseSSL" :disabled="!useObjectStorage">{{ $t('objectStorageUseSSL') }}<template #desc>{{ $t('objectStorageUseSSLDesc') }}</template></mk-switch>
|
<mk-switch v-model="objectStorageUseSSL" :disabled="!useObjectStorage">{{ $t('objectStorageUseSSL') }}<template #desc>{{ $t('objectStorageUseSSLDesc') }}</template></mk-switch>
|
||||||
<mk-switch v-model="objectStorageUseProxy" :disabled="!useObjectStorage">{{ $t('objectStorageUseProxy') }}<template #desc>{{ $t('objectStorageUseProxyDesc') }}</template></mk-switch>
|
<mk-switch v-model="objectStorageUseProxy" :disabled="!useObjectStorage">{{ $t('objectStorageUseProxy') }}<template #desc>{{ $t('objectStorageUseProxyDesc') }}</template></mk-switch>
|
||||||
|
<mk-switch v-model="objectStorageSetPublicRead" :disabled="!useObjectStorage">{{ $t('objectStorageSetPublicRead') }}</mk-switch>
|
||||||
</template>
|
</template>
|
||||||
</div>
|
</div>
|
||||||
<div class="_footer">
|
<div class="_footer">
|
||||||
|
@ -306,6 +307,7 @@ export default Vue.extend({
|
||||||
objectStorageSecretKey: null,
|
objectStorageSecretKey: null,
|
||||||
objectStorageUseSSL: false,
|
objectStorageUseSSL: false,
|
||||||
objectStorageUseProxy: false,
|
objectStorageUseProxy: false,
|
||||||
|
objectStorageSetPublicRead: false,
|
||||||
enableTwitterIntegration: false,
|
enableTwitterIntegration: false,
|
||||||
twitterConsumerKey: null,
|
twitterConsumerKey: null,
|
||||||
twitterConsumerSecret: null,
|
twitterConsumerSecret: null,
|
||||||
|
@ -373,6 +375,7 @@ export default Vue.extend({
|
||||||
this.objectStorageSecretKey = this.meta.objectStorageSecretKey;
|
this.objectStorageSecretKey = this.meta.objectStorageSecretKey;
|
||||||
this.objectStorageUseSSL = this.meta.objectStorageUseSSL;
|
this.objectStorageUseSSL = this.meta.objectStorageUseSSL;
|
||||||
this.objectStorageUseProxy = this.meta.objectStorageUseProxy;
|
this.objectStorageUseProxy = this.meta.objectStorageUseProxy;
|
||||||
|
this.objectStorageSetPublicRead = this.meta.objectStorageSetPublicRead;
|
||||||
this.enableTwitterIntegration = this.meta.enableTwitterIntegration;
|
this.enableTwitterIntegration = this.meta.enableTwitterIntegration;
|
||||||
this.twitterConsumerKey = this.meta.twitterConsumerKey;
|
this.twitterConsumerKey = this.meta.twitterConsumerKey;
|
||||||
this.twitterConsumerSecret = this.meta.twitterConsumerSecret;
|
this.twitterConsumerSecret = this.meta.twitterConsumerSecret;
|
||||||
|
@ -522,6 +525,7 @@ export default Vue.extend({
|
||||||
objectStorageSecretKey: this.objectStorageSecretKey ? this.objectStorageSecretKey : null,
|
objectStorageSecretKey: this.objectStorageSecretKey ? this.objectStorageSecretKey : null,
|
||||||
objectStorageUseSSL: this.objectStorageUseSSL,
|
objectStorageUseSSL: this.objectStorageUseSSL,
|
||||||
objectStorageUseProxy: this.objectStorageUseProxy,
|
objectStorageUseProxy: this.objectStorageUseProxy,
|
||||||
|
objectStorageSetPublicRead: this.objectStorageSetPublicRead,
|
||||||
enableTwitterIntegration: this.enableTwitterIntegration,
|
enableTwitterIntegration: this.enableTwitterIntegration,
|
||||||
twitterConsumerKey: this.twitterConsumerKey,
|
twitterConsumerKey: this.twitterConsumerKey,
|
||||||
twitterConsumerSecret: this.twitterConsumerSecret,
|
twitterConsumerSecret: this.twitterConsumerSecret,
|
||||||
|
|
|
@ -370,4 +370,9 @@ export class Meta {
|
||||||
default: true,
|
default: true,
|
||||||
})
|
})
|
||||||
public objectStorageUseProxy: boolean;
|
public objectStorageUseProxy: boolean;
|
||||||
|
|
||||||
|
@Column('boolean', {
|
||||||
|
default: false,
|
||||||
|
})
|
||||||
|
public objectStorageSetPublicRead: boolean;
|
||||||
}
|
}
|
||||||
|
|
|
@ -418,6 +418,10 @@ export const meta = {
|
||||||
|
|
||||||
objectStorageUseProxy: {
|
objectStorageUseProxy: {
|
||||||
validator: $.optional.bool
|
validator: $.optional.bool
|
||||||
|
},
|
||||||
|
|
||||||
|
objectStorageSetPublicRead: {
|
||||||
|
validator: $.optional.bool
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -673,6 +677,10 @@ export default define(meta, async (ps, me) => {
|
||||||
set.objectStorageUseProxy = ps.objectStorageUseProxy;
|
set.objectStorageUseProxy = ps.objectStorageUseProxy;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (ps.objectStorageSetPublicRead !== undefined) {
|
||||||
|
set.objectStorageSetPublicRead = ps.objectStorageSetPublicRead;
|
||||||
|
}
|
||||||
|
|
||||||
await getConnection().transaction(async transactionalEntityManager => {
|
await getConnection().transaction(async transactionalEntityManager => {
|
||||||
const meta = await transactionalEntityManager.findOne(Meta, {
|
const meta = await transactionalEntityManager.findOne(Meta, {
|
||||||
order: {
|
order: {
|
||||||
|
|
|
@ -195,6 +195,7 @@ export default define(meta, async (ps, me) => {
|
||||||
response.objectStorageSecretKey = instance.objectStorageSecretKey;
|
response.objectStorageSecretKey = instance.objectStorageSecretKey;
|
||||||
response.objectStorageUseSSL = instance.objectStorageUseSSL;
|
response.objectStorageUseSSL = instance.objectStorageUseSSL;
|
||||||
response.objectStorageUseProxy = instance.objectStorageUseProxy;
|
response.objectStorageUseProxy = instance.objectStorageUseProxy;
|
||||||
|
response.objectStorageSetPublicRead = instance.objectStorageSetPublicRead;
|
||||||
}
|
}
|
||||||
|
|
||||||
return response;
|
return response;
|
||||||
|
|
|
@ -212,6 +212,7 @@ async function upload(key: string, stream: fs.ReadStream | Buffer, type: string,
|
||||||
} as S3.PutObjectRequest;
|
} as S3.PutObjectRequest;
|
||||||
|
|
||||||
if (filename) params.ContentDisposition = contentDisposition('inline', filename);
|
if (filename) params.ContentDisposition = contentDisposition('inline', filename);
|
||||||
|
if (meta.objectStorageSetPublicRead) params.ACL = 'public-read';
|
||||||
|
|
||||||
const s3 = getS3(meta);
|
const s3 = getS3(meta);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue