Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Public API files resources #4641

Closed
6 tasks done
Tracked by #952
bisgaard-itis opened this issue Aug 22, 2023 · 1 comment
Closed
6 tasks done
Tracked by #952

Public API files resources #4641

bisgaard-itis opened this issue Aug 22, 2023 · 1 comment
Assignees
Labels
e2e Bugs found by or related to the end-2-end testing t:enhancement Improvement or request on an existing feature
Milestone

Comments

@bisgaard-itis
Copy link
Contributor

bisgaard-itis commented Aug 22, 2023

@bisgaard-itis

Baklava issues

Tasks

@bisgaard-itis bisgaard-itis self-assigned this Aug 22, 2023
@bisgaard-itis bisgaard-itis added t:enhancement Improvement or request on an existing feature e2e Bugs found by or related to the end-2-end testing labels Aug 22, 2023
@bisgaard-itis bisgaard-itis added this to the Baklava milestone Aug 22, 2023
@pcrespov
Copy link
Member

files

  • release 0.6.0 we will include files resources
  • user story on files resource
  • how to:
    • auto-delete files
    • limit maximum upload (user-based?)
    • collection : pagination & filtering & search
      • search by checksum
      • search by file-name
    • hash?
    • upload w/o intermediate storing in api-server
    • metadata

list_files

sequenceDiagram
    participant API
    participant AS as api-server
    participant SS as storage
    link API: OAS @ https://editor.swagger.io/?url=https://raw.githubusercontent.com/ITISFoundation/osparc-simcore/master/services/api-server/openapi.json
    link SS: OAS @ https://editor.swagger.io/?url=https://raw.githubusercontent.com/ITISFoundation/osparc-simcore/master/services/storage/src/simcore_service_storage/api/v0/openapi.yaml

    API->>+AS: list_files
    AS->>+SS: search_files_starting_with("api/", user_id)
    SS-->>-AS: list[StorageFileMetadata] 
    AS-->>-API: list[File]
Loading
  • uses models_library/api_schemas_storage

get_files_page NOT IMPLEMENTED

sequenceDiagram
    participant API
    participant AS as api-server
    participant SS as storage
    link API: OAS @ https://editor.swagger.io/?url=https://raw.githubusercontent.com/ITISFoundation/osparc-simcore/master/services/api-server/openapi.json
    link SS: OAS @ https://editor.swagger.io/?url=https://raw.githubusercontent.com/ITISFoundation/osparc-simcore/master/services/storage/src/simcore_service_storage/api/v0/openapi.yaml

    API->>+AS: get_files_page
    AS->>+SS: ?
    SS-->>-AS: ?
    AS-->>-API: Page[File]
Loading

upload_file

sequenceDiagram
    participant API
    participant AS as api-server
    participant SS as storage
    participant S3 as s3
    link API: OAS @ https://editor.swagger.io/?url=https://raw.githubusercontent.com/ITISFoundation/osparc-simcore/master/services/api-server/openapi.json
    link SS: OAS @ https://editor.swagger.io/?url=https://raw.githubusercontent.com/ITISFoundation/osparc-simcore/master/services/storage/src/simcore_service_storage/api/v0/openapi.yaml

    API->>+AS: upload_file
    AS->>+SS: ?
    AS->>+S3: ?
    S3-->>-AS: ?
    SS-->>-AS: ?    
    AS-->>-API: Page[File]
Loading

get_upload_links

sequenceDiagram
    participant API
    participant AS as api-server
    participant SS as storage
    participant S3 as s3
    link API: OAS @ https://editor.swagger.io/?url=https://raw.githubusercontent.com/ITISFoundation/osparc-simcore/master/services/api-server/openapi.json
    link SS: OAS @ https://editor.swagger.io/?url=https://raw.githubusercontent.com/ITISFoundation/osparc-simcore/master/services/storage/src/simcore_service_storage/api/v0/openapi.yaml

    API->>+AS: get_upload_links
    AS->>+SS: get_upload_file_links
    SS->>+S3: ?
    S3-->>-SS: file_links
    SS-->>-AS: (store_id, file_links)    
    AS-->>-API: ClientFileUploadSchema
Loading
  • uses simcore_sdk.filemanager.get_upload_links_from_s3
  • rename ClientFileUploadSchema to avoid word Schema

get_file

sequenceDiagram
    participant API
    participant AS as api-server
    participant SS as storage
    participant S3 as s3
    link API: OAS @ https://editor.swagger.io/?url=https://raw.githubusercontent.com/ITISFoundation/osparc-simcore/master/services/api-server/openapi.json
    link SS: OAS @ https://editor.swagger.io/?url=https://raw.githubusercontent.com/ITISFoundation/osparc-simcore/master/services/storage/src/simcore_service_storage/api/v0/openapi.yaml

    API->>+AS: storage.search_files_file
    AS->>+SS: search_files_starting_with(f"api/{file_id}", user_id)
    SS-->>-AS: list[StorageFileMetadata][0]
    AS-->>-API: list[File]
Loading
  • implement single file get in storage

delete_file NOT IMPLEMENTED

sequenceDiagram
    participant API
    participant AS as api-server
    participant SS as storage
    participant S3 as s3
    link API: OAS @ https://editor.swagger.io/?url=https://raw.githubusercontent.com/ITISFoundation/osparc-simcore/master/services/api-server/openapi.json
    link SS: OAS @ https://editor.swagger.io/?url=https://raw.githubusercontent.com/ITISFoundation/osparc-simcore/master/services/storage/src/simcore_service_storage/api/v0/openapi.yaml

    API->>+AS: storage.delete_file
    AS->>+SS: delete_file(location_id, file_id, user_id)
    SS->>+S3: delete
    S3-->>-SS: ?
    SS-->>-AS: 204
    AS-->>-API: 204
Loading

complete_multipart_upload, abort_multipart_upload

sequenceDiagram
    participant API
    participant AS as api-server
    participant SS as storage
    participant S3 as s3
    link API: OAS @ https://editor.swagger.io/?url=https://raw.githubusercontent.com/ITISFoundation/osparc-simcore/master/services/api-server/openapi.json
    link SS: OAS @ https://editor.swagger.io/?url=https://raw.githubusercontent.com/ITISFoundation/osparc-simcore/master/services/storage/src/simcore_service_storage/api/v0/openapi.yaml

    API->>+AS: create_complete_upload_link
    AS->>+SS: complete_upload_file(f"api/{file_id}/file_name", user_id)
    SS-->>-AS: Envelope[FileUploadSchema]
    AS-->>-API: RedirectResponse to AnyUrl
Loading
  • uses simcore_sdk

download_file

sequenceDiagram
    participant API
    participant AS as api-server
    participant SS as storage
    participant S3 as s3
    link API: OAS @ https://editor.swagger.io/?url=https://raw.githubusercontent.com/ITISFoundation/osparc-simcore/master/services/api-server/openapi.json
    link SS: OAS @ https://editor.swagger.io/?url=https://raw.githubusercontent.com/ITISFoundation/osparc-simcore/master/services/storage/src/simcore_service_storage/api/v0/openapi.yaml

    API->>+AS: file_file
    AS->>+SS: search_files_starting_with(f"api/{file_id}", user_id)
    SS-->>-AS: list[StorageFileMetadata][0]
    AS->>+SS: download_file("api/{file_id}/{file_name}", user_id)
    SS->>+S3: ?
    S3-->>-SS: presigned_download_link: ? AnyUrl 
    SS-->>-AS: Enveloped[LinkType]
    AS-->>-API: RedirectResponse to AnyUrl
Loading

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
e2e Bugs found by or related to the end-2-end testing t:enhancement Improvement or request on an existing feature
Projects
None yet
Development

No branches or pull requests

2 participants