Un mémorandum lors de la confirmation seulement que quelque chose peut être écrit dans + S3 qui renvoie html appelé Hello World!.
$ sudo yum install httpd
/etc/httpd/conf/httpd.conf Éditer
/var/www/html/ Créez index.py et écrivez du code
$ chmod 755 index.py
Pour pouvoir exécuter.
J'utiliserai boto3 donc je vais le mettre
```$ sudo pip install boto3```
## Code que j'ai écrit
(Réécrire BucketName en votre propre bucketname)
#### **` index.py`**
```py
#!/usr/bin/python
# coding:utf-8
import boto3
import logging
import datetime
import cgi
import uuid
def main():
now_s = datetime.datetime.now().strftime('%Y.%m.%d-%H:%M:%S')
messge = "no-message"
field = cgi.FieldStorage() #À utiliser s'il y a un message dans le paramètre de requête
if field.has_key('message'):
message = field['message'].value
# html
print "Content-Type: text/html\n"
print "Hello World!"
# S3
s3 = boto3.resource('s3')
key = 'test-folder/{0}-{1}.txt'.format(now_s, uuid.uuid4())
s3.meta.client.put_object(Bucket='BucketName', Key=key, Body=message)
# log
handler = logging.StreamHandler()
handler.setFormatter(logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s'))
logger = logging.getLogger()
logger.addHandler(handler)
logger.setLevel(logging.INFO)
logger.error(message)
logger.info(message)
if __name__ == "__main__":
main()
Apache Start
$ service httpd start
Si vous faites une requête http et confirmez ce qui suit, c'est OK.
Lorsque je veux obtenir le corps publié, s'il est corrompu en tant que champ ou données brutes, il ne peut pas être extrait de cgi.FieldStorage et j'obtiens une erreur non indexable. Je l'ai obtenu avec sys.stdin.read ().
How to parse the “request body” using python CGI?
Recommended Posts