Compartilhando arquivos por um site

Introdução ao AWS Boto em Python

Maksim Pecherskiy

Data Engineer

Servindo páginas HTML

S3 servindo HTML

Introdução ao AWS Boto em Python

Tabela HTML no pandas

Converter DataFrame em HTML

df.to_html('table_agg.html')

DataFrame para HTML

Introdução ao AWS Boto em Python

Tabela HTML no pandas com links

Converter DataFrame em HTML

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

DataFrame para HTML

Introdução ao AWS Boto em Python

Selecionar colunas para HTML

Converter DataFrame em HTML

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

DataFrame para HTML

Introdução ao AWS Boto em Python

Bordas

Converter DataFrame em HTML

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

DataFrame para HTML com bordas

Introdução ao AWS Boto em Python

Enviando um arquivo HTML para o S3

Enviar um arquivo HTML para o S3

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

Key='table.html',
ExtraArgs = { 'ContentType': 'text/html', 'ACL': 'public-read'} )
Introdução ao AWS Boto em Python

Acessando o arquivo HTML

Modelo de URL de objeto do S3

https://{bucket}.{key}
https://datacamp-website.table.html
Introdução ao AWS Boto em Python

Página HTML

Página HTML

Introdução ao AWS Boto em Python

Enviando outros tipos de conteúdo

Enviar uma imagem para o S3

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

ExtraArgs = { 'ContentType': 'image/png', 'ACL': 'public-read'} )
Introdução ao AWS Boto em Python

Tipos de mídia IANA

  • JSON : application/json
  • PNG : image/png
  • PDF : application/pdf
  • CSV : text/csv
1 http://www.iana.org/assignments/media-types/media-types.xhtml
Introdução ao AWS Boto em Python

Gerando uma página de índice

# Listar os objetos do bucket gid-reports começando com 2019/
r = s3.list_objects(Bucket='gid-reports', Prefix='2019/')

# Converter o conteúdo da resposta em DataFrame objects_df = pd.DataFrame(r['Contents'])

Página de índice

Introdução ao AWS Boto em Python

Gerando uma página de índice

# Criar uma coluna "Link" com a url do site + key
base_url = "http://datacamp-website."
objects_df['Link'] = base_url + objects_df['Key']
# Gravar o DataFrame em HTML
objects_df.to_html('report_listing.html', 
                   columns=['Link', 'LastModified', 'Size'],
                   render_links=True)

Gerando uma página de índice

Introdução ao AWS Boto em Python

Enviando a página de índice

Enviar um arquivo HTML para o S3

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

Introdução ao AWS Boto em Python

Revisão

  • Tabela HTML no pandas (df.to_html('table.html'))
  • Enviar arquivo HTML (ContentType: text/html)
  • Enviar arquivo de imagem (ContentType: image/png)
  • Compartilhe a URL da nossa página HTML!
Introdução ao AWS Boto em Python

Vamos praticar!

Introdução ao AWS Boto em Python

Preparing Video For Download...