hunk.code_window: func NewS3FileBackend(settings FileBackendSettings) (*S3FileBackend, error) {
   	timeout := time.Duration(settings.AmazonS3RequestTimeoutMilliseconds) * time.Millisecond
   	backend := &S3FileBackend{
   		endpoint:       settings.AmazonS3Endpoint,
   		accessKey:      settings.AmazonS3AccessKeyId,
  
hunk.labels: add keep keep keep keep
hunk.after_edit: 	return newS3FileBackend(settings, os.Getenv("MM_CLOUD_FILESTORE_BIFROST") != "")
   }
   // NewS3FileBackendWithoutBifrost returns an instance of an S3FileBackend that will not use bifrost.
   func NewS3FileBackendWithoutBifrost(settings FileBackendSettings) (*S3FileBackend, error) {
   	return newS3FileBackend(settings, false)
   }
   func newS3FileBackend(settings FileBackendSettings, isCloud bool) (*S3FileBackend, error) {
  
hunk.file_path: server/platform/shared/filestore/s3store.go
hunk.type: add
file: DO $$
  DECLARE 
      column_exist boolean := false;
  BEGIN
  SELECT count(*) != 0 INTO column_exist
      FROM information_schema.columns
      WHERE table_name = 'pluginkeyvaluestore'
      AND table_schema = current_schema()
      AND column_name = 'pkey'
      AND NOT data_type = 'varchar(50)';
  IF column_exist THEN
      ALTER TABLE pluginkeyvaluestore ALTER COLUMN pkey TYPE varchar(50);
  END IF;
  END $$;
  