Error in using s3 integration

User 2256 | 9/17/2015, 3:24:45 AM

Hi all,

I have recently started using graphlab and after following quite a few tutorials on using SFrame, I decided to use it with my amazon s3 instance.

My approach was as follows:

import graphlab as gl gl.aws.set_credentials('xxxxxxxxxx', 'xxxxxxxxxxxxxxxxxxxxxxxxx') data = gl.SFrame.read_csv('s3://to/my/folder')

But I consistently get the error:

IOError: Cannot open s3://sensus/E2/ProtocolReport/0038acb3-7649-46fe-84ee-f2b77d561c7f.json for read. Fail to download from s3://sensus/E2/ProtocolReport/0038acb3-7649-46fe-84ee-f2b77d561c7f.json. [SSL: CERTIFICATEVERIFYFAILED] certificate verify failed (_ssl.c:590)

I am quite sure that my AWS credentials are correct.

I then googled and found that unlike the dato tutorial mentioned here, I still get the same error. I was wondering is the way to access s3 through graphlab have changed? Is there a way around it?

Comments

User 1178 | 9/17/2015, 6:28:19 PM

Hi,

This is the issue surfaces in past 10 days or so. You may find detailed information from the following link:

https://github.com/aws/aws-cli/issues/1499 https://github.com/certifi/python-certifi/issues/26 https://lukasa.co.uk/2015/04/CertifiStateOf_Union/

To summarize: 1. awscli uses requests module which uses certifi module, and requests module by default uses latest certifi module 2. Python module certifi recently changes behavior to not include cross-signed roots, which Amazon uses

There are a few work arounds: 1. downgrade awscli to version 1.6.2 2. force install older version of certifi: 'pip install certifi==2015.04.28)

Let me know if the workaround works for you.

Thanks! Ping


User 2256 | 10/15/2015, 9:24:57 PM

Hi Ping, The workaround didn't work for me, so instead of trying to pull data from s3 to my own machine, I did it onto the ec2 and that solved the issues. Thanks for your suggestions though! :-)