Exemple #1
0
def upload(type):
    if context.user is None:
        raise HttpForbiddenError()
    # get photo service:
    provider = shared.get_setting('storage', 'photo_provider', '')
    if not provider:
        return __upload_result(
            403, '', '',
            'You do not configure a photo provider. Go to "Setting", "Storage" to configure a photo provider.'
        )
    settings = shared.get_settings('storage')
    prefix = provider[:-len('PhotoProvider')].replace('.', '_')
    kw = {}
    for key in settings:
        if key.startswith(prefix):
            k = key[len(prefix):]
            v = settings[key]
            if isinstance(k, unicode):
                k = k.encode('utf8')
            if isinstance(v, unicode):
                v = v.encode('utf8')
            kw[k] = v
    try:
        module_name = provider[:-len('.PhotoProvider')]
        mod = __import__(module_name, globals(), locals(), ['PhotoProvider'])
        payload = context.request.get('NewFile')
        url = mod.PhotoProvider.upload(payload, 'title',
                                       'upload from ExpressMe', **kw)
        if 'photo_proxied' in settings and settings['photo_proxied'] == 'True':
            import util
            url = util.make_proxy(url)
        __upload_result(0, url, 'filename', '')
    except Exception, e:
        __upload_result(1, '', 'filename', 'Upload failed: %s' % str(e))
Exemple #2
0
def __handle_get_storage():
    import storage
    photo_module_names = storage.find_photo_modules()
    photo_providers = [
        mod.PhotoProvider for mod in [
            __import__('storage.photo.' +
                       p, globals(), locals(), ['PhotoProvider'])
            for p in photo_module_names
        ]
    ]
    settings = shared.get_settings('storage')

    def __get_provider_setting(provider, name):
        key = provider.__module__.replace('.', '_') + '_' + name
        if key in settings:
            return settings[key]
        return ''

    return {
        'template': 'storage.html',
        'get_provider_setting': __get_provider_setting,
        # photo storage:
        'photo_providers': photo_providers,
        'photo_provider': __get_setting(settings, 'photo_provider', ''),
        # file storage:
        'file_provider': __get_setting(settings, 'file_provider', ''),
        # use proxy:
        'photo_proxied': __get_setting(settings, 'photo_proxied', ''),
        'file_proxied': __get_setting(settings, 'file_proxied', '')
    }
Exemple #3
0
def upload(type):
    if context.user is None:
        raise HttpForbiddenError()
    # get photo service:
    provider = shared.get_setting('storage', 'photo_provider', '')
    if not provider:
        return __upload_result(403, '', '', 'You do not configure a photo provider. Go to "Setting", "Storage" to configure a photo provider.')
    settings = shared.get_settings('storage')
    prefix = provider[:-len('PhotoProvider')].replace('.', '_')
    kw = {}
    for key in settings:
        if key.startswith(prefix):
            k = key[len(prefix):]
            v = settings[key]
            if isinstance(k, unicode):
                k = k.encode('utf8')
            if isinstance(v, unicode):
                v = v.encode('utf8')
            kw[k] = v
    try:
        module_name = provider[:-len('.PhotoProvider')]
        mod = __import__(module_name, globals(), locals(), ['PhotoProvider'])
        payload = context.request.get('NewFile')
        url = mod.PhotoProvider.upload(payload, 'title', 'upload from ExpressMe', **kw)
        if 'photo_proxied' in settings and settings['photo_proxied']=='True':
            import util
            url = util.make_proxy(url)
        __upload_result(0, url, 'filename', '')
    except Exception, e:
        __upload_result(1, '', 'filename', 'Upload failed: %s' % str(e))
Exemple #4
0
def __handle_get_storage():
    import storage
    photo_module_names = storage.find_photo_modules()
    photo_providers = [mod.PhotoProvider for mod in [__import__('storage.photo.' + p, globals(), locals(), ['PhotoProvider']) for p in photo_module_names]]
    settings = shared.get_settings('storage')
    def __get_provider_setting(provider, name):
        key = provider.__module__.replace('.', '_') + '_' + name
        if key in settings:
            return settings[key]
        return ''
    return {
            'template' : 'storage.html',
            'get_provider_setting' : __get_provider_setting,
            # photo storage:
            'photo_providers' : photo_providers,
            'photo_provider' : __get_setting(settings, 'photo_provider', ''),
            # file storage:
            'file_provider' : __get_setting(settings, 'file_provider', ''),
            # use proxy:
            'photo_proxied' : __get_setting(settings, 'photo_proxied', ''),
            'file_proxied' : __get_setting(settings, 'file_proxied', '')
    }