@@ -192,18 +192,11 @@ def __init__(self, sparkcontext, credentials, configuration_name='', cos_type='c
192
192
193
193
'''
194
194
# check if all required values are availble
195
- _validate_input (credentials , cos_type , auth_method )
195
+ self . _validate_input (credentials , cos_type , auth_method )
196
196
197
197
self .bucket_name = bucket_name
198
198
self .conf_name = configuration_name
199
199
200
- credential_key_list = ["endpoint" , "access_key" , "secret_key" ]
201
-
202
- for i in range (len (credential_key_list )):
203
- key = credential_key_list [i ]
204
- if (not key in credentials ):
205
- raise ValueError ("Invalid input: credentials.{} is required!" .format (key ))
206
-
207
200
# setup config
208
201
prefix = "fs.cos"
209
202
@@ -214,8 +207,20 @@ def __init__(self, sparkcontext, credentials, configuration_name='', cos_type='c
214
207
215
208
hconf = sparkcontext ._jsc .hadoopConfiguration ()
216
209
hconf .set (prefix + ".endpoint" , credentials ['endpoint' ])
217
- hconf .set (prefix + ".access.key" , credentials ['access_key' ])
218
- hconf .set (prefix + ".secret.key" , credentials ['secret_key' ])
210
+
211
+ if (cos_type == "classic_cos" ):
212
+ hconf .set (prefix + ".access.key" , credentials ['access_key' ])
213
+ hconf .set (prefix + ".secret.key" , credentials ['secret_key' ])
214
+
215
+ elif (cos_type == "bluemix_cos" ):
216
+ hconf .set (prefix + ".iam.service.id" , credentials ['service_id' ])
217
+ if (auth_method == "api_key" ):
218
+ hconf .set (prefix + ".iam.api.key" , credentials ['api_key' ])
219
+ elif (auth_method == "iam_token" ):
220
+ hconf .set (prefix + ".iam.token" , credentials ['iam_token' ])
221
+
222
+ if (credentials .get ('v2_signer_type' )):
223
+ hconf .set (prefix + ".v2.signer.type" , credentials ['v2_signer_type' ])
219
224
220
225
def _validate_input (self , credentials , cos_type , auth_method ):
221
226
required_key_classic_cos = ["endpoint" , "access_key" , "secret_key" ]
0 commit comments