mirror of
https://github.com/boostorg/website-v2.git
synced 2026-02-27 05:32:08 +00:00
Merge pull request #176 from cppalliance/static-content
WIP #153 Retrieving data from S3
This commit is contained in:
@@ -354,6 +354,12 @@ if not LOCAL_DEVELOPMENT:
|
||||
DEFAULT_FILE_STORAGE = "core.storages.MediaStorage"
|
||||
MEDIA_URL = f"{AWS_S3_ENDPOINT_URL}/{MEDIA_BUCKET_NAME}/"
|
||||
|
||||
AWS_ACCESS_KEY_ID = env("AWS_ACCESS_KEY_ID", default="changeme")
|
||||
AWS_SECRET_ACCESS_KEY = env("AWS_SECRET_ACCESS_KEY", default="changeme")
|
||||
BUCKET_NAME = env("BUCKET_NAME", default="changeme")
|
||||
AWS_S3_ENDPOINT_URL = "s3.amazonaws.com"
|
||||
DEFAULT_FILE_STORAGE = "storages.backends.s3boto3.S3Boto3Storage"
|
||||
|
||||
# Markdown content
|
||||
BASE_CONTENT = env("BOOST_CONTENT_DIRECTORY", "/website")
|
||||
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
import boto3
|
||||
import re
|
||||
|
||||
from django.conf import settings
|
||||
|
||||
from mistletoe import HTMLRenderer
|
||||
from mistletoe.span_token import SpanToken
|
||||
from pygments import highlight
|
||||
@@ -8,6 +11,35 @@ from pygments.lexers import get_lexer_by_name as get_lexer, guess_lexer
|
||||
from pygments.formatters.html import HtmlFormatter
|
||||
|
||||
|
||||
def get_content_from_s3(key=None, bucket_name=None):
|
||||
"""Get content from S3
|
||||
|
||||
Sample key:
|
||||
'archives/boost_1_81_0/README.md'
|
||||
|
||||
Returns the decoded file contents if able
|
||||
|
||||
FIXME: This is a temporary solution to get the content from S3
|
||||
and does not handle errors or anything unexpected with grace.
|
||||
"""
|
||||
|
||||
if not key:
|
||||
raise
|
||||
|
||||
if not bucket_name:
|
||||
bucket_name = settings.BUCKET_NAME
|
||||
|
||||
client = boto3.client(
|
||||
"s3",
|
||||
aws_access_key_id=settings.AWS_ACCESS_KEY_ID,
|
||||
aws_secret_access_key=settings.AWS_SECRET_ACCESS_KEY,
|
||||
region_name="us-east-1",
|
||||
)
|
||||
response = client.get_object(Bucket=bucket_name, Key=key)
|
||||
file_content = response["Body"].read().decode("utf-8")
|
||||
return file_content
|
||||
|
||||
|
||||
class Youtube(SpanToken):
|
||||
"""
|
||||
Span token for Youtube shortcodes
|
||||
|
||||
@@ -15,3 +15,8 @@ DJANGO_DEBUG=1
|
||||
SECRET_KEY="top-secret"
|
||||
|
||||
GITHUB_TOKEN="top-secret"
|
||||
|
||||
AWS_ACCESS_KEY_ID="changeme"
|
||||
AWS_SECRET_ACCESS_KEY="changeme"
|
||||
BUCKET_NAME="stage.boost.org"
|
||||
|
||||
|
||||
@@ -19,6 +19,7 @@ Pillow==9.4.0
|
||||
django-storages
|
||||
wheel==0.38.1
|
||||
cryptography==39.0.1
|
||||
boto3
|
||||
|
||||
# Logging
|
||||
django-tracer
|
||||
@@ -41,6 +42,7 @@ Faker
|
||||
model_bakery
|
||||
ipython
|
||||
responses
|
||||
minio
|
||||
|
||||
# Packaging
|
||||
pip-tools==6.12.3
|
||||
|
||||
@@ -25,7 +25,9 @@ billiard==3.6.4.0
|
||||
black==22.3
|
||||
# via -r ./requirements.in
|
||||
boto3==1.17.68
|
||||
# via django-bakery
|
||||
# via
|
||||
# -r ./requirements.in
|
||||
# django-bakery
|
||||
botocore==1.20.68
|
||||
# via
|
||||
# boto3
|
||||
@@ -39,7 +41,9 @@ bumpversion==0.6.0
|
||||
celery==5.2.2
|
||||
# via -r ./requirements.in
|
||||
certifi==2022.6.15
|
||||
# via requests
|
||||
# via
|
||||
# minio
|
||||
# requests
|
||||
cffi==1.15.1
|
||||
# via cryptography
|
||||
charset-normalizer==2.1.0
|
||||
@@ -171,6 +175,8 @@ marshmallow==3.11.1
|
||||
# via environs
|
||||
matplotlib-inline==0.1.3
|
||||
# via ipython
|
||||
minio==7.1.14
|
||||
# via -r ./requirements.in
|
||||
mistletoe==0.8.2
|
||||
# via -r ./requirements.in
|
||||
model-bakery==1.5.0
|
||||
@@ -277,7 +283,6 @@ s3transfer==0.4.2
|
||||
# via boto3
|
||||
six==1.16.0
|
||||
# via
|
||||
# asttokens
|
||||
# click-repl
|
||||
# django-bakery
|
||||
# django-rest-auth
|
||||
@@ -297,7 +302,6 @@ tomli==2.0.1
|
||||
# via
|
||||
# black
|
||||
# build
|
||||
# pyproject-hooks
|
||||
# pytest
|
||||
traitlets==5.2.1.post0
|
||||
# via
|
||||
@@ -310,11 +314,11 @@ typing-extensions==4.5.0
|
||||
urllib3==1.26.4
|
||||
# via
|
||||
# botocore
|
||||
# minio
|
||||
# requests
|
||||
# responses
|
||||
vine==5.0.0
|
||||
# via
|
||||
# amqp
|
||||
# celery
|
||||
# kombu
|
||||
wcwidth==0.2.5
|
||||
|
||||
Reference in New Issue
Block a user