[ 
https://issues.apache.org/jira/browse/AIRAVATA-3281?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17007766#comment-17007766
 ] 

ASF subversion and git services commented on AIRAVATA-3281:
-----------------------------------------------------------

Commit cef36c19a2371a97e3e80c3b927098a3f742d436 in airavata's branch 
refs/heads/airavata-3281 from Marcus Christie
[ https://gitbox.apache.org/repos/asf?p=airavata.git;h=cef36c1 ]

AIRAVATA-3281 Copy output's file-metadata to data product metadata


> Capture and use mime-type for input and output files
> ----------------------------------------------------
>
>                 Key: AIRAVATA-3281
>                 URL: https://issues.apache.org/jira/browse/AIRAVATA-3281
>             Project: Airavata
>          Issue Type: Bug
>          Components: Django Portal
>            Reporter: Marcus Christie
>            Assignee: Marcus Christie
>            Priority: Major
>
> h2. Proposal
> - store {{mime-type}} in {{DataProduct.productMetadata}}
> - For input files, {{mime-type}} value is whatever is present in the upload 
> request. (Perhaps can also come from application interface's 
> {{InputDataObjectType.metaData['file-metadata']}}).
> - For output files, {{mime-type}} value comes from 
> {{OutputDataObjectType.metaData['file-metadata']}}. When output data staging 
> register the DataProduct, it will need to read the 
> OutputDataObjectType.metaData and copy the file-metadata to the DataProduct's 
> productMetadata
> - in Django portal, when downloading data product, if metadata has 
> {{mime-type}} then use that as the content type. Otherwise, set the content 
> type to {{application/octet-stream}} and add a {{Content-Disposition}} header 
> with value {{attachment; filename=...}} (which is what is currently happening 
> all the time).
> h3. Other details
> - Django portal should retain DataProduct metadata when moving or copying 
> input files
> - The DataProduct download URL will accept a {{download}} query param to 
> force download even when there is a mime-type in metadata
> - image outputs can be displayed inline
> - if there is no mime-type for a file, try to guess based on file extension 
> (using [mimetypes|https://docs.python.org/3/library/mimetypes.html] Python 
> module)
> h3. TODO
> - [x] Capture mime-type when files are uploaded
> -- input files
> -- data store files, XHR upload
> -- data store files, tus upload
> - [x] copy metadata when input files are moved/copied in storage
> - [ ] images can be displayed inline
> - [ ] In backend, copy mime-type to {{DataProduct.productMetadata}} when 
> registering output file
> - [x] fallback on guessing mime-type based on file extension
> - [x] only allow viewing/previewing files with known mime-type
> - [x] when browser says file is application/octet-stream, check if it is text 
> by trying to read it as unicode (https://stackoverflow.com/a/30273352) and if 
> so set to text/plain
> - [ ] add an button to download the file?



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to