def get(self, video): expires = 600 headers = { 'response-content-type': 'application/octet-stream', 'response-content-disposition': 'attachment; filename="%s"' % video.download_name } key = video_bucket.get_key(video.filepath) url = key.generate_url(expires, force_http=True, response_headers=headers) return dict(url=url, expires=expires), 302, {'Location': url}
def migrate_video_files(account): for video in Video.query.filter_by(account_id=account, filename='dolly'): metadata = ooyala.ooyala_request('assets', video.external_id, 'metadata') key = video_bucket.get_key(metadata['path']) assert key.size < 5 * 2 ** 30 # can't copy files bigger than this video.filename = get_random_filename() dst = Video.get_video_filepath(account, video.filename) key.copy(video_bucket.name, dst) key.delete() ooyala.set_metadata(video.external_id, dict(path=dst, label=account)) db.session.commit()
def validate_filename(self, field): if field.data: field.data = field.data.rsplit('/')[-1] filepath = Video.get_video_filepath(self.account_id, field.data) if not video_bucket.get_key(filepath): raise wtforms.ValidationError('%s not found.' % filepath)