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))
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', '') }
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))
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', '') }