diff --git a/pybossa/api/task_run.py b/pybossa/api/task_run.py index 61e82b2b3..61a8e65d7 100644 --- a/pybossa/api/task_run.py +++ b/pybossa/api/task_run.py @@ -68,6 +68,7 @@ class TaskRunAPI(APIBase): def _preprocess_post_data(self, data): with_encryption = app.config.get('ENABLE_ENCRYPTION') upload_root_dir = app.config.get('S3_UPLOAD_DIRECTORY') + conn_name = "S3_TASKRUN_V2" if app.config.get("S3_CONN_TYPE_V2") else "S3_TASKRUN" if current_user.is_anonymous: raise Forbidden('') task_id = data['task_id'] @@ -84,7 +85,7 @@ def _preprocess_post_data(self, data): data['info'] = {} pyb_answer_url = upload_json_data(json_data=info, upload_path=path, file_name='pyb_answer.json', encryption=with_encryption, - conn_name='S3_TASKRUN', upload_root_dir=upload_root_dir + conn_name=conn_name, upload_root_dir=upload_root_dir ) if pyb_answer_url: data['info']['pyb_answer_url'] = pyb_answer_url @@ -222,9 +223,11 @@ def _upload_files_from_request(task_run_info, files, upload_path, with_encryptio if not key.endswith('__upload_url'): raise BadRequest("File upload field should end in __upload_url") file_obj = request.files[key] - s3_url = s3_upload_file_storage(app.config.get("S3_BUCKET"), + bucket = app.config.get("S3_BUCKET_V2") if app.config.get("S3_CONN_TYPE_V2") else app.config.get("S3_BUCKET") + conn_name = "S3_TASKRUN_V2" if app.config.get("S3_CONN_TYPE_V2") else "S3_TASKRUN" + s3_url = s3_upload_file_storage(bucket, file_obj, - directory=upload_path, conn_name='S3_TASKRUN', + directory=upload_path, conn_name=conn_name, with_encryption=with_encryption) task_run_info[key] = s3_url diff --git a/pybossa/cloud_store_api/s3.py b/pybossa/cloud_store_api/s3.py index 9304580d1..7b50fed8d 100644 --- a/pybossa/cloud_store_api/s3.py +++ b/pybossa/cloud_store_api/s3.py @@ -226,7 +226,7 @@ def upload_json_data(json_data, upload_path, file_name, encryption, conn_name, upload_root_dir=None, bucket=None): content = json.dumps(json_data, ensure_ascii=False) if not bucket: - bucket = app.config.get("S3_BUCKET") + bucket = app.config.get("S3_BUCKET_V2") if app.config.get("S3_CONN_TYPE_V2") else app.config.get("S3_BUCKET") return s3_upload_from_string(bucket, content, file_name, directory=upload_path, conn_name=conn_name, diff --git a/pybossa/task_creator_helper.py b/pybossa/task_creator_helper.py index 99578d266..1eee20881 100644 --- a/pybossa/task_creator_helper.py +++ b/pybossa/task_creator_helper.py @@ -87,13 +87,14 @@ def upload_files_priv(task, project_id, data, file_name): path='{}/{}'.format(task_hash, file_name) ) file_url = url_for('fileproxy.encrypted_file', **values) + conn_name = "S3_TASK_REQUEST_V2" if store == current_app.config.get("S3_CONN_TYPE_V2") else "S3_TASK_REQUEST" internal_url = upload_json_data( bucket=bucket, json_data=data, upload_path=path, file_name=file_name, encryption=True, - conn_name= "S3_TASK_REQUEST_V2" if store == current_app.config.get("S3_CONN_TYPE_V2") else "S3_TASK_REQUEST" + conn_name=conn_name ) return {'externalUrl': file_url, 'internalUrl': internal_url} diff --git a/setup.py b/setup.py index 1543d4d71..5a4a50b97 100644 --- a/setup.py +++ b/setup.py @@ -9,6 +9,7 @@ "blinker==1.4", "boto==2.49.0", "boto3==1.28.62", + "botocore==1.31.62", "cachelib==0.3.0", "cachetools==4.2.2", "certifi==2021.5.30",