2016-11-29 9 views
0

私はなぜPythonのオープンコールが、ファイルが存在しないときに存在しないと言っているのか解明しようとしています。ブラウザに正確に同じファイルのURLを入力すると、写真が表示されます。Pythonが開いているとファイルが存在しないと言います

私が取得エラーメッセージは次のとおりです。

No such file or directory: 'https://yhistory.s3.amazonaws.com/media/userphotos/1_1471378042183_cdv_photo_033.jpg' 

ザ・Pythonのコードは次のとおりです。

full_path_filename = 'https://' + settings.AWS_STORAGE_BUCKET_NAME + '.s3.amazonaws.com/' + file_name 
fd_img = open(full_path_filename, 'r') 

この問題は、ファイルがAWS S3バケットにいると何かである場合、私は思っていたが、私はバケツに接続し、その内容をリストすることができます。あなたはこのような何かを行う必要があり、インターネット上でファイルを開こうとしている場合は

+0

あなたのマシン上のファイルの名前ですか、それともインターネット経由でアクセスしようとしていますか? –

+0

インターネット経由でファイルにアクセスしようとすると、 'urllib2'や' requests'のようなモジュールを使う必要があります。 –

+0

インターネットに接続されたノートパソコンでPythonコードが実行されています。 –

答えて

3

(あなたのpython 3を使用していると仮定します):

import urllib.request 
full_path_filename = 'https://' + settings.AWS_STORAGE_BUCKET_NAME + '.s3.amazonaws.com/' + file_name 

file = urllib.request.urlopen(full_path_filename) 

これは、実際のファイルをダウンロードします。 fileをオブジェクトのような別のファイルとして使用できます。

+2

Python 'requests'は、クッキーやSSLのような難しいものを扱う強力なHTTPライブラリです。リクエストのレスポンスオブジェクトを解体する方法の例については、[この質問](http://stackoverflow.com/questions/13137817/how-to-download-image-using-requests)を参照してください。また、おそらくログインしなければならないサービスを使用しているので、ログインクレデンシャルを提供してセッションクッキーを取得するトランザクションと、ファイルをフェッチするトランザクションの2つのトランザクションを行う必要があります。 –

関連する問題