Dateien über eine Website teilen

Einführung in AWS Boto mit Python

Maksim Pecherskiy

Data Engineer

HTML-Seiten ausliefern

S3 liefert HTML aus

Einführung in AWS Boto mit Python

HTML-Tabelle in pandas

DataFrame in HTML umwandeln

df.to_html('table_agg.html')

DataFrame zu HTML

Einführung in AWS Boto mit Python

HTML-Tabelle in pandas mit Links

DataFrame in HTML umwandeln

df.to_html('table_agg.html', render_links=True)

DataFrame zu HTML

Einführung in AWS Boto mit Python

Bestimmte Spalten als HTML

DataFrame in HTML umwandeln

df.to_html('table_agg.html', 
           render_links=True,
           columns['service_name', 'request_count', 'info_link'])

DataFrame zu HTML

Einführung in AWS Boto mit Python

Rahmen

DataFrame in HTML umwandeln

df.to_html('table_agg.html', 
           render_links=True,
           columns['service_name', 'request_count', 'info_link'],
           border=0)

DataFrame zu HTML mit Rahmen

Einführung in AWS Boto mit Python

Eine HTML-Datei nach S3 hochladen

Eine HTML-Datei nach S3 hochladen

s3.upload_file(
  Filename='./table_agg.html', 
  Bucket='datacamp-website',

Key='table.html',
ExtraArgs = { 'ContentType': 'text/html', 'ACL': 'public-read'} )
Einführung in AWS Boto mit Python

Auf HTML-Datei zugreifen

S3-Objekt-URL-Vorlage

https://{bucket}.{key}
https://datacamp-website.table.html
Einführung in AWS Boto mit Python

HTML-Seite

HTML-Seite

Einführung in AWS Boto mit Python

Andere Inhaltstypen hochladen

Eine Bilddatei nach S3 hochladen

s3.upload_file(
  Filename='./plot_image.png', 
  Bucket='datacamp-website',
  Key='plot_image.png',

ExtraArgs = { 'ContentType': 'image/png', 'ACL': 'public-read'} )
Einführung in AWS Boto mit Python

IANA-Medientypen

  • JSON : application/json
  • PNG : image/png
  • PDF : application/pdf
  • CSV : text/csv
1 http://www.iana.org/assignments/media-types/media-types.xhtml
Einführung in AWS Boto mit Python

Eine Indexseite erzeugen

# Objekte im Bucket gid-reports auflisten, die mit 2019/ beginnen
r = s3.list_objects(Bucket='gid-reports', Prefix='2019/')

# Antwortinhalt in DataFrame umwandeln objects_df = pd.DataFrame(r['Contents'])

Indexseite

Einführung in AWS Boto mit Python

Eine Indexseite erzeugen

# Spalte "Link" erstellen: Website-URL + Key
base_url = "http://datacamp-website."
objects_df['Link'] = base_url + objects_df['Key']
# DataFrame als HTML schreiben
objects_df.to_html('report_listing.html', 
                   columns=['Link', 'LastModified', 'Size'],
                   render_links=True)

Indexseite erzeugen

Einführung in AWS Boto mit Python

Indexseite hochladen

Eine HTML-Datei nach S3 hochladen

s3.upload_file(
  Filename='./report_listing.html', 
  Bucket='datacamp-website',
  Key='index.html',
  ExtraArgs = {
    'ContentType': 'text/html', 
    'ACL': 'public-read'}
)

https://datacamp-website.index.html

Einführung in AWS Boto mit Python

Zusammenfassung

  • HTML-Tabelle in pandas (df.to_html('table.html'))
  • HTML-Datei hochladen (ContentType: text/html)
  • Bilddatei hochladen (ContentType: image/png)
  • Die URL zu unserer HTML-Seite teilen!
Einführung in AWS Boto mit Python

Lass uns üben!

Einführung in AWS Boto mit Python

Preparing Video For Download...