2014-06-29 9 views
6

में gcs के साथ प्रमाणित नहीं कर सकते। कंसोल "नया क्लाइंट आईडी बनाएं", "इंस्टॉल किया गया एप्लीकेशन", "अन्य"।मैं <a href="https://developers.google.com/storage/docs/gspythonlibrary#credentials" rel="noreferrer">https://developers.google.com/storage/docs/gspythonlibrary#credentials</a></p> <p>में उदाहरण मैं देव में चयन करके ग्राहक/गुप्त जोड़ी बनाई अनुसरण कर रही हूं अजगर

मैं अपने अजगर स्क्रिप्ट में निम्न कोड है:

import boto 
from gcs_oauth2_boto_plugin.oauth2_helper import SetFallbackClientIdAndSecret 
CLIENT_ID = 'my_client_id' 
CLIENT_SECRET = 'xxxfoo' 
SetFallbackClientIdAndSecret(CLIENT_ID, CLIENT_SECRET) 

uri = boto.storage_uri('foobartest2014', 'gs') 
header_values = {"x-goog-project-id": proj_id} 
uri.create_bucket(headers=header_values) 

और यह निम्नलिखित त्रुटि के साथ विफल:

File "/usr/local/lib/python2.7/dist-packages/boto/storage_uri.py", line 555, in create_bucket 
     conn = self.connect() 
    File "/usr/local/lib/python2.7/dist-packages/boto/storage_uri.py", line 140, in connect 
     **connection_args) 
    File "/usr/local/lib/python2.7/dist-packages/boto/gs/connection.py", line 47, in __init__ 
     suppress_consec_slashes=suppress_consec_slashes) 
    File "/usr/local/lib/python2.7/dist-packages/boto/s3/connection.py", line 190, in __init__ 
     validate_certs=validate_certs, profile_name=profile_name) 
    File "/usr/local/lib/python2.7/dist-packages/boto/connection.py", line 572, in __init__ 
     host, config, self.provider, self._required_auth_capability()) 
    File "/usr/local/lib/python2.7/dist-packages/boto/auth.py", line 883, in get_auth_handler 
     'Check your credentials' % (len(names), str(names))) 
    boto.exception.NoAuthHandlerFound: No handler was ready to authenticate. 3 handlers were checked. ['OAuth2Auth', 'OAuth2ServiceAccountAuth', 'HmacAuthV1Handler'] Check your credentials 
+0

आप कोशिश कर gcloud-अजगर (https://github.com/GoogleCloudPlatform/gcloud-python) के बारे में सोचा है? बोटो –

उत्तर

2

आप एक .boto फ़ाइल में एक क्लाइंट/गुप्त जोड़ी प्रदान करने के लिए की जरूरत है, और फिर gsutil config चलाएं।

यह एक ताज़ा टोकन बनाएगा, और फिर काम करना चाहिए!

अधिक जानकारी के लिए, https://developers.google.com/storage/docs/gspythonlibrary#credentials

+1

का उपयोग करने से अधिक आसान हो सकता है * हमें *boto फ़ाइल और स्रोत कोड दोनों में client_id और client_secret निर्दिष्ट करने की आवश्यकता क्यों है? – frmsaul

+0

@ griffin2000 के उत्तर देखें, बोटो अप्रचलित है और आपको Google के साथ कहीं भी नहीं ले जाएगा। – brma

3

देख मैं पिछले कुछ दिनों के लिए इस के साथ संघर्ष कर दिया गया है, Boto सामान पता चला है, और कहा कि gspythonlibrary सब पूरी तरह से अप्रचलित हैं।

नवीनतम उदाहरण है कि कैसे उपयोग करने के लिए/Google क्लाउड संग्रहण प्रमाणित दिखा कोड यहाँ है: https://github.com/GoogleCloudPlatform/python-docs-samples/tree/master/storage/api

+0

आपको लगता है कि यह अप्रचलित क्यों है? यह अभी भी यहां दिखाई देता है: https://cloud.google.com/storage/docs/xml-api/gspythonlibrary – Roman

+1

हाँ, यह दस्तावेज़ पुराना है। यदि आप gcloud के हाल के संस्करण के साथ उन निर्देशों का प्रयास करते हैं और उनका पालन करते हैं तो यह पूरी तरह विफल हो जाएगा। वहां वर्णित संपूर्ण बोटो सिस्टम, अब समर्थित है (या कम से कम दृढ़ता से निराश) – griffin2000

+0

धन्यवाद @ ग्रिफिन 2000, मैंने अपने दस्तावेज़ों को देखकर घंटों तक बर्बाद कर दिया और मुझे आपकी टिप्पणी मिलने तक समर्थन टिकट खोलने में बर्बाद कर दिया। मैं ऊपर आ गया हूं और 2 मिनट बाद चल रहा हूं ... मुझे विश्वास नहीं है कि वे अभी भी बीएडी/डब्ल्यूआरओएन डॉक्स होस्ट कर रहे हैं। गलत दस्तावेज़ों से कोई दस्तावेज़ बेहतर नहीं है। – brma

संबंधित मुद्दे