Exemple #1
0
 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}
Exemple #2
0
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()
Exemple #3
0
 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)