Convertir l'API cURL en script Python (à l'aide du stockage d'objets IBM Cloud)

Notez le modèle de conversion lors de la réécriture en Python après avoir vérifié le fonctionnement de REST-API avec cURL

  1. Utilisez le stockage d'objets IBM Cloud pour vérifier le fonctionnement de cURL.
  2. Écrivez la cURL confirmée dans un script Python et inspectez-la dans le stockage d'objets.

Partie 1. Obtenez un jeton d'authentification

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)

Partie 2. Afficher une liste de seaux

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>

Partie 3. Importer des fichiers dans le bucket

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))

Oups. Il y avait un site qui convertissait les scripts cURL et Python.

C'est pratique.

Convert curl syntax to Python https://curl.trillworks.com/

Recommended Posts

Convertir l'API cURL en script Python (à l'aide du stockage d'objets IBM Cloud)
[Python] Modifier le contrôle du cache des objets téléchargés sur Cloud Storage
Télécharger des fichiers sur Aspera fournis avec IBM Cloud Object Storage (ICOS) à l'aide du SDK (version Python)
J'ai fait un script pour enregistrer la fenêtre active en utilisant win32gui de Python
[IBM Cloud] Placez le fichier ISO dans le stockage d'objets
[Python] Vous pouvez enregistrer un objet dans un fichier en utilisant le module pickle.
Une histoire sur un débutant Python essayant d'obtenir des résultats de recherche Google à l'aide de l'API
Création d'un script Python prenant en charge l'API e-Stat (ver.2)
J'ai écrit un script Python qui exporte tous mes articles à l'aide de l'API Qiita v2
[OCI] Script Python pour obtenir l'adresse IP d'une instance de calcul dans Cloud Shell
J'ai essayé d'automatiser la construction d'un environnement pratique à l'aide de l'API SoftLayer d'IBM Cloud
Utiliser Cloud Storage depuis Python3 (Introduction)
J'ai créé une bibliothèque Python pour appeler l'API de LINE WORKS
Comment obtenir des abonnés et des abonnés de Python à l'aide de l'API Mastodon
Créez un script shell pour exécuter le fichier python plusieurs fois
Remarque sur la connexion de Spark à IBM Object Storage basé sur OpenStack Swift
Un script qui renvoie 0, 1 attaché au premier Python prime
Comment envoyer une requête à l'API DMM (FANZA) avec python
Créez un outil de ligne de commande pour convertir des dollars en yens en utilisant Python
Comment télécharger des fichiers sur Cloud Storage à l'aide de Python [Créer une caméra à point fixe avec Raspberry PI # 1]
Essayez d'utiliser l'API Wunderlist en Python
Essayez d'utiliser l'API Kraken avec Python
[Python] Comment convertir une liste bidimensionnelle en liste unidimensionnelle
Tweet à l'aide de l'API Twitter en Python
Exécuter l'interpréteur Python dans le script
J'ai créé un script en python pour convertir des fichiers .md au format Scrapbox
Exploitez le stockage d'objets cloud de Sakura à partir de Python
Comment exécuter des scripts Maya Python
J'ai essayé de livrer du courrier depuis Node.js et Python en utilisant le service de livraison de courrier (SendGrid) d'IBM Cloud!
J'ai essayé d'utiliser l'API BigQuery Storage
Utilisez Cloud Composer pour accéder régulièrement à l'API Youtube afin de créer un pipeline afin de stocker les résultats dans Bigquery
[2015/11/19] Comment enregistrer un service localement à l'aide du SDK python avec naoqi os
Laisser Python mesurer le score moyen d'une page à l'aide de l'API PageSpeed Insights
[Circuit x Python] Comment trouver la fonction de transfert d'un circuit en utilisant Lcapy
La clé du déploiement d'applications Flask à l'aide de Python Buildpack sur Cloud Foundry (Diego)
J'ai essayé d'utiliser la bibliothèque Python "pykakasi" qui peut convertir des kanji en romaji.
[Python] Smasher a essayé de faire du processus de chargement de la vidéo une fonction à l'aide d'un générateur
[IBM Cloud] J'ai essayé d'accéder à la table Db2 on Cloud à partir de Cloud Funtions (python)
Script Python pour obtenir une liste d'exemples d'entrée pour le concours AtCoder
Pour envoyer automatiquement des e-mails avec des pièces jointes à l'aide de l'API Gmail en Python
Continuez à récupérer des tweets contenant des mots-clés spécifiques à l'aide de l'API Streaming en Python
Création d'un wrapper Python pour l'API Qiita
Procédure pour utiliser l'API WEB de TeamGant (en utilisant python)
Script Python pour convertir la latitude et la longitude en code de maillage
Essayez d'utiliser l'API BitFlyer Ligntning en Python
J'ai essayé d'utiliser l'API Google Cloud Vision
Comment générer un objet Python à partir de JSON
Comment utiliser l'API Google Cloud Translation
Enregistrer l'objet dans un fichier avec pickle
Convertir STL en maillage Voxel à l'aide de Python VTK
Ecrire un script pour convertir un vidage MySQL en TSV
amateur python tente de résumer la liste ②
Exécutez des scripts Python à partir d'Excel (en utilisant xlwings)
[Python] Lancer un message sur le canal Slack
Essayez d'utiliser l'API DropBox Core avec Python
J'ai essayé de notifier la mise à jour de "Devenir romancier" en utilisant "IFTTT" et "Devenir un romancier API"