-
Notifications
You must be signed in to change notification settings - Fork 533
DataSink S3 support does not work #3105
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
Comments
For things like this, I'll often debug as follows: >>> from nipype.interfaces.io import *
>>> ds = DataSink()
>>> ds.inputs.base_directory = 's3://kimsin-test'
>>> ds.inputs.creds_path = os.path.abspath('aws.csv')
>>> ds.inputs.encrypt_bucket_keys = True
>>> ds.inputs.local_copy = os.path.abspath('log')
>>> ds.inputs.out_s3 = 'DELETE.me'
>>> self = ds Then just manually walk through the nipype/nipype/interfaces/io.py Lines 944 to 1067 in 1a86999
I'm sure there's a way to do this in pdb that will save you typing/pasting, if you prefer... |
Hi, this may be related to the use of Edit: Looks like pathlib.Path is the culprit: nipype/nipype/interfaces/base/traits_extension.py Lines 120 to 126 in 1a86999
|
Good find! I suppose the simplest fix would be changing I will submit a quick PR after testing. |
I think |
@oesteban I am not quite sure about all the implications, but doing so would skip whatever cleanup For now, I will leave the discussion on what format DataSink expects as inputs up to others. |
Summary
The DataSink interface does not work.
Actual behavior
Only the local copy works. Oddly, when used in a workflow, DataSink creates a local directory named
s3:/
instead.Expected behavior
DataSink creates objects in S3 buckets when base_directory starts with
s3://
.How to replicate the behavior
This basic S3 test code does not create the desired output in the S3 bucket.
Platform details:
Execution environment
The text was updated successfully, but these errors were encountered: