Ein Memorandum, in dem nur bestätigt wird, dass etwas in + S3 geschrieben werden kann, das HTML mit dem Namen Hello World! Zurückgibt.
$ sudo yum install httpd
/etc/httpd/conf/httpd.conf Bearbeiten
/var/www/html/ Erstellen Sie index.py in und schreiben Sie Code
$ chmod 755 index.py
Ausführen können.
Ich werde boto3 verwenden, also werde ich es einfügen
```$ sudo pip install boto3```
## Code, den ich geschrieben habe
(Schreiben Sie BucketName in Ihren eigenen Bucket-Namen um.)
#### **` 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() #Verwenden Sie diese Option, wenn der Abfrageparameter eine Nachricht enthält
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
Wenn Sie eine http-Anfrage stellen und Folgendes bestätigen, ist dies in Ordnung.
Wenn ich den veröffentlichten Text abrufen möchte, wenn er als Feld oder Rohdaten beschädigt ist, kann er nicht aus cgi.FieldStorage übernommen werden, und es wird ein nicht indizierbarer Fehler angezeigt. Ich habe es mit sys.stdin.read () bekommen.
How to parse the “request body” using python CGI?
Recommended Posts