upload_credentials = { 'upload_url': 's3://{bucket}/{key}'.format(**external), } return { '@graph': [{ '@id': request.resource_path(context), 'upload_credentials': upload_credentials, }], } @view_config(name='upload', context=File, request_method='POST', permission='edit', validators=[schema_validator({"type": "object"})]) def post_upload(context, request): properties = context.upgrade_properties() if properties['status'] not in ('uploading', 'upload failed'): raise HTTPForbidden( 'status must be "uploading" to issue new credentials') accession_or_external = properties.get( 'accession') or properties['external_accession'] external = context.propsheets.get('external', None) if external is None: # Handle objects initially posted as another state. bucket = request.registry.settings['file_upload_bucket'] uuid = context.uuid mapping = context.schema['file_format_file_extension']
upload_credentials = external.get('upload_credentials') # Show s3 location info for files originally submitted to EDW. if upload_credentials is None and external.get('service') == 's3': upload_credentials = { 'upload_url': 's3://{bucket}/{key}'.format(**external), } return { '@graph': [{ '@id': request.resource_path(context), 'upload_credentials': upload_credentials, }], } @view_config(name='upload', context=File, request_method='POST', permission='edit', validators=[schema_validator({"type": "object"})]) def post_upload(context, request): properties = context.upgrade_properties() if properties['status'] not in ('uploading', 'upload failed'): raise HTTPForbidden('status must be "uploading" to issue new credentials') accession_or_external = properties.get('accession') or properties['external_accession'] file_upload_bucket = request.registry.settings['file_upload_bucket'] external = context.propsheets.get('external', None) registry = request.registry if external is None: # Handle objects initially posted as another state. bucket = file_upload_bucket uuid = context.uuid mapping = context.schema['file_format_file_extension'] file_extension = mapping[properties['file_format']]
upload_credentials = external.get('upload_credentials') # Show s3 location info for files originally submitted to EDW. if upload_credentials is None and external.get('service') == 's3': upload_credentials = { 'upload_url': 's3://{bucket}/{key}'.format(**external), } return { '@graph': [{ '@id': request.resource_path(context), 'upload_credentials': upload_credentials, }], } @view_config(name='upload', context=File, request_method='POST', permission='edit', validators=[schema_validator({"type": "object"})]) def post_upload(context, request): properties = context.upgrade_properties() if properties['status'] not in ('uploading', 'upload failed'): raise HTTPForbidden('status must be "uploading" to issue new credentials') accession_or_external = properties.get('accession') or properties['external_accession'] external = context.propsheets.get('external', None) if external is None: # Handle objects initially posted as another state. bucket = request.registry.settings['file_upload_bucket'] uuid = context.uuid mapping = context.schema['file_format_file_extension'] file_extension = mapping[properties['file_format']] date = properties['date_created'].split('T')[0].replace('-', '/')