From 38281448491abd0b02a48f53be7adc74c1f61def Mon Sep 17 00:00:00 2001 From: liuyi Date: Thu, 16 Jan 2025 19:47:50 +0800 Subject: [PATCH] fix(server): disable checksum check for r2 storage when using aws-s3 sdk (#9735) --- .../backend/server/scripts/self-host-predeploy.js | 2 +- packages/backend/server/src/config/affine.self.ts | 4 +++- packages/backend/server/src/config/affine.ts | 12 ++++++++---- tools/cli/src/webpack/s3-plugin.ts | 2 ++ 4 files changed, 14 insertions(+), 6 deletions(-) diff --git a/packages/backend/server/scripts/self-host-predeploy.js b/packages/backend/server/scripts/self-host-predeploy.js index 04cd38082..ba5c43105 100644 --- a/packages/backend/server/scripts/self-host-predeploy.js +++ b/packages/backend/server/scripts/self-host-predeploy.js @@ -8,7 +8,7 @@ const SELF_HOST_CONFIG_DIR = '/root/.affine/config'; function generateConfigFile() { const content = fs.readFileSync('./dist/config/affine.js', 'utf-8'); return content.replace( - /(^\/\/#.*$)|(^\/\/\s+TODO.*$)|("use\sstrict";?)|(^.*eslint-disable.*$)/gm, + /(^\/\/#.*$)|(^\/\/\s+TODO.*$)|("use\sstrict";?)|(^.*lint-disable.*$)/gm, '' ); } diff --git a/packages/backend/server/src/config/affine.self.ts b/packages/backend/server/src/config/affine.self.ts index 1c8900f9c..3069ef60c 100644 --- a/packages/backend/server/src/config/affine.self.ts +++ b/packages/backend/server/src/config/affine.self.ts @@ -1,4 +1,4 @@ -/* eslint-disable @typescript-eslint/no-non-null-assertion */ +/* oxlint-disable @typescript-eslint/no-non-null-assertion */ // Custom configurations for AFFiNE Cloud // ==================================================================================== // Q: WHY THIS FILE EXISTS? @@ -31,6 +31,8 @@ if (env.R2_OBJECT_STORAGE_ACCOUNT_ID) { accessKeyId: env.R2_OBJECT_STORAGE_ACCESS_KEY_ID!, secretAccessKey: env.R2_OBJECT_STORAGE_SECRET_ACCESS_KEY!, }, + requestChecksumCalculation: 'WHEN_REQUIRED', + responseChecksumValidation: 'WHEN_REQUIRED', }); AFFiNE.storages.avatar.provider = 'cloudflare-r2'; AFFiNE.storages.avatar.bucket = 'account-avatar'; diff --git a/packages/backend/server/src/config/affine.ts b/packages/backend/server/src/config/affine.ts index b69347383..c948d6861 100644 --- a/packages/backend/server/src/config/affine.ts +++ b/packages/backend/server/src/config/affine.ts @@ -1,4 +1,3 @@ -/* eslint-disable @typescript-eslint/no-non-null-assertion */ // // ############################################################### // ## AFFiNE Configuration System ## @@ -99,9 +98,14 @@ AFFiNE.server.port = 3010; // /* AWS S3 Plugin */ // /* Enable if you choose to store workspace blobs or user avatars in AWS S3 Storage Service */ // AFFiNE.use('aws-s3', { -// credentials: { -// accessKeyId: '', -// secretAccessKey: '', +// credentials: { +// accessKeyId: '', +// secretAccessKey: '', +// }, +// /* Whether enable checksum calculation for request */ +// /* see https://github.com/aws/aws-sdk-js-v3/issues/6810 */ +// requestChecksumCalculation: 'WHEN_REQUIRED', +// responseChecksumValidation: 'WHEN_REQUIRED', // }) // /* Update the provider of storages */ // AFFiNE.storages.blob.provider = 'cloudflare-r2'; diff --git a/tools/cli/src/webpack/s3-plugin.ts b/tools/cli/src/webpack/s3-plugin.ts index 5a6b26adc..00de2355c 100644 --- a/tools/cli/src/webpack/s3-plugin.ts +++ b/tools/cli/src/webpack/s3-plugin.ts @@ -18,6 +18,8 @@ export class WebpackS3Plugin implements WebpackPluginInstance { accessKeyId: process.env.R2_ACCESS_KEY_ID!, secretAccessKey: process.env.R2_SECRET_ACCESS_KEY!, }, + requestChecksumCalculation: 'WHEN_REQUIRED', + responseChecksumValidation: 'WHEN_REQUIRED', }); apply(compiler: Compiler) {