Pour cURL
curl -X "POST" "https://iam.cloud.ibm.com/identity/token" \
-H 'Accept: application/json' \
-H 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode "apikey={api-key}" \
--data-urlencode "response_type=cloud_iam" \
--data-urlencode "grant_type=urn:ibm:params:oauth:grant-type:apikey"
Pour Python
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
import requests
import json
#Obtenez un jeton
headers = {
'Accept': 'application/json',
'Content-Type': 'application/x-www-form-urlencoded',
}
data = {
'apikey': os.environ['IBM_APIKEY'],
'response_type': 'cloud_iam',
'grant_type': 'urn:ibm:params:oauth:grant-type:apikey'
}
response = requests.post('https://iam.cloud.ibm.com/identity/token', headers=headers, data=data)
print(response)
output = response.json()
#print(json.dumps(output, indent=4))
ibm_access_token = output['access_token']
print(ibm_access_token)
Résultat d'exécution Python
STATUS :<Response [200]>
{
"access_token":"eyJraWQ******************************************2Erh-Te-w",
"expires_in":3600,
}
#Les jetons très longs sont valables 1 heure (3600)=60 secondes x 60 minutes)
Pour cURL
curl "https://(endpoint)/" \
-H "Authorization: bearer (token)" \
-H "ibm-service-instance-id: (resource-instance-id)"
Pour Python
#Écrivez le même script python jusqu'à ce que vous obteniez le jeton
# “#!/usr/bin/env python en ibm_access_token = output['access_token']Jusqu'à ce que"
#Je vais l'omettre ici.
#Liste des objets
headers = {
'Authorization': 'bearer ' + ibm_access_token
}
response = requests.get('https://s3.jp-tok.cloud-object-storage.appdomain.cloud/robocamera', headers=headers)
print("STATUS :" + str(response))
print("HEADERS:" + str(response.headers))
print("TEXT :" + str(response.text))
Résultat d'exécution Python
STATUS :<Response [200]>
HEADERS:{'Content-Length': '1938', 'ibm-sse-kp-enabled':<Omis>'Content-Type': 'application/xml'}
TEXT :<?xml version="1.0" encoding="UTF-8" standalone="yes"?><Omis>
<Name>robocamera</Name>
<Contents>
<Key>ciel_face_s.png</Key><LastModified>2019-11-30T02:50:53.410Z</LastModified>
<Key>ghostpicture.jpg</Key><LastModified>2019-11-30T01:46:52.413Z</LastModified>
<Key>index.html</Key><LastModified>2019-11-24T14:48:55.793Z</LastModified>
Pour cURL
curl -X "PUT" "https://(endpoint)/(bucket-name)/(object-key)" \
-H "Authorization: bearer (token)" \
-H "Content-Type: (content-type)" \
-d "(object-contents)"
Pour Python
#Téléchargez le fichier image de la caméra dans IBM Cloud Object Storage.
#Dans cet exemple[/robocamera]Est le nom du bucket,[ghostpicture.jpg]Est le nom de clé de l'objet.
headers = {
'Authorization': 'bearer ' + ibm_access_token,
'Content-Type': 'image/jpeg',
}
f = open('capture_output.jpg', 'rb')
img_data = f.read()
f.close()
response = requests.put(service_endpoint + '/robocamera/ghostpicture.jpg', headers=headers, data=img_data)
#Lorsque vous souhaitez vérifier lors du débogage de l'acquisition de jetons
print("UPLOAD STATUS:" + str(response))
C'est pratique.
Convert curl syntax to Python https://curl.trillworks.com/
Recommended Posts