Skip to content

Instantly share code, notes, and snippets.

@tayhimself
Created April 6, 2022 02:56
Show Gist options
  • Save tayhimself/bed6789b619b00f11005f6725a6788e2 to your computer and use it in GitHub Desktop.
Save tayhimself/bed6789b619b00f11005f6725a6788e2 to your computer and use it in GitHub Desktop.
CDN URL
from flask import Flask, url_for
from werkzeug.urls import url_encode
app = Flask(__name__)
def cdn_url_builder(error, endpoint, values):
if endpoint != 'cdn':
return
filename = values.pop('filename')
# Ignore _external flag, we're always external
values.pop('_external', None)
return 'http://mycdn.invalid/%s/%s/%s%s' % (
filename[:1],
filename[:2],
filename,
values and '?' + url_encode(values) or '',
)
app.url_build_error_handlers.append(cdn_url_builder)
@app.route('/')
def index():
return url_for('cdn', filename='foobar.png')
print app.test_client().get('/').data
Running this returns:
# http://mycdn.invalid/f/fo/foobar.png
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment