공중에서 파일런이 제공되는 파일에 맞춤 헤더를 추가하려면 어떻게해야하나요?파일 고정 (공용) 파일에 대한 사용자 지정 응답 헤더를 설정하려면 어떻게해야합니까?
답변
a) 웹 서버가 paster 대신/public에서 파일을 제공하고 일부 특수 헤더를 전달하도록 구성 할 수 있습니다.
b)는 특별한 경로를 추가하고 serve the files yourself ala
class FilesController(BaseController):
def download(self, path)
fapp = FileApp(path, headers=self.get_headers(path))
return fapp(request.environ, self.start_response)
c)는 어쩌면 헤더를 덮어 쓸 수있는 방법이 있고 난 그냥 잘 모릅니다.
최근 버전의 route를 사용하면 'Magic path_info'기능을 사용할 수 있으며 여기에서 설명서를 따라 컨트롤러를 작성하여 paster.DirectoryApp를 호출 할 수 있습니다. 내 프로젝트에서
, 나는 하위 디렉토리를 포함하여 공공 디렉토리에있는 파일을 제공 원했고, 콘텐츠 _ 오버라이드 (override) 할 수 있도록, 컨트롤러로이 끝난 : 표준 철탑 설정에서import logging
from paste.fileapp import FileApp
from paste.urlparser import StaticURLParser
from pylons import config
from os.path import basename
class ForceDownloadController(StaticURLParser):
def __init__(self, directory=None, root_directory=None, cache_max_age=None):
if not directory:
directory = config['pylons.paths']['static_files']
StaticURLParser.__init__(self, directory, root_directory, cache_max_age)
def make_app(self, filename):
headers = [('Content-Disposition', 'filename=%s' % (basename(filename)))]
return FileApp(filename, headers, content_type='application/octetstream')
을의 공개 파일은 StaticUrlParser에서 제공됩니다. 이것은 일반적으로 config/middleware.py : make_app() 함수에서 설정합니다.
Antonin ENFRUN 설명과 같이 StaticUrlParser를 서브 클래스화해야합니다. 컨트롤러를 호출하는 것이 다른 목적을하기 때문에 혼란 스럽습니다.
from paste.fileapp import FileApp
from paste.urlparser import StaticURLParser
class HeaderUrlParser(StaticURLParser):
def make_app(self, filename):
headers = # your headers here
return FileApp(filename, headers, content_type='application/octetstream')
후 설정/middleware.py에 StaticUrlParser을 대체 :하여 설정/middleware.py의 상단에 다음과 같이 뭔가를 추가 make_app()를 HeaderUrlParser와
static_app = StaticURLParser(config['pylons.paths']['static_files'])
이
static_app = HeaderURLParser(config['pylons.paths']['static_files'])
된다
pylons book을 기반으로 스트리밍에 FileApp을 사용하는 간단한 방법입니다. 아래 코드는 귀하의 경로가 some_file_identifier
을 제공한다고 가정하지만 다른 두 변수는 "마법"입니다 (코드 뒤의 설명 참조). 당신이 당신의 방법 서명에 그 이름의 변수가있는 경우
class MyFileController(BaseController):
def serve(self, environ, start_response, some_file_identifier):
path = self._convert_id_to_path(some_file_identifier)
app = FileApp(path)
return app(environ, start_response)
철탑 자동 environ
및 start_response
변수 당신에게 WSGI를 제공합니다. 그렇지 않으면 헤더를 설정하거나 변경하지 않아야합니다. 그렇다면 능력을 사용하여 built in to FileApp을 사용할 수 있습니다.
- 1. 사용자 지정 응답 헤더를 사용하여 사이트 전송 감지하기
- 2. Apache에서 사용자 지정 응답
- 3. iis7의 사용자 지정 파일에 만료 헤더를 추가하려면 어떻게합니까?
- 4. CKEditor에 대한 사용자 지정 구성 파일 지정
- 5. 출력 캐시가 응답 헤더를 고려합니까?
- 6. ListViewSubItem에 대한 아이콘을 설정하려면 어떻게해야합니까?
- 7. Perl에서 파일 사용 권한을 설정하려면 어떻게해야합니까?
- 8. ASP.NET 사이트의 파일에 대한 공용 액세스 제한
- 9. tastypie 인증/사용자 지정 응답
- 10. C#을 통해 사용자 지정 HTTP 응답 헤더에 액세스
- 11. XMLHttpRequests가 응답 헤더를 캐시합니까?
- 12. 웹 페이지에 대한 컨트롤을 설정하려면 어떻게해야합니까?
- 13. 새우에서 사용자 정의 템플릿을 설정하려면 어떻게해야합니까?
- 14. msi에서 공용 속성 설정 사용자 지정 액션
- 15. 사용자 상태를 포함하도록 친구 피드를 설정하려면 어떻게해야합니까?
- 16. 사용자 지정 파일 구조에 대한 유용한 정보
- 17. UITextField 사용자 지정 키보드 및 장치 방향에 대한 응답
- 18. 입력 파일 경로 런타임을 설정하려면 어떻게해야합니까?
- 19. 사용자 지정 제의 .vimrc 파일에
- 20. asp.net resx 파일에 대한 사용자 지정 culture 질문
- 21. 고정 위치 지정 div의 일부만 보이게하려면 어떻게해야합니까?
- 22. Symfony 플러그인에 대한 자격 증명을 설정하려면 어떻게해야합니까?
- 23. 이 설정에서 개발자에게 적절한 파일 권한을 설정하려면 어떻게해야합니까?
- 24. 사용자 지정 HTTP 응답, C# 및 .ajax()?
- 25. 출력 파일에 대한 ASP.Net 로그 응답
- 26. WCF - 사용자 지정 클라이언트 요청/응답 XML
- 27. Android에서 textView의 글꼴을 설정하려면 어떻게해야합니까?
- 28. Mappoint의 압정에 사용자 지정 아이콘을 지정하려면 어떻게해야합니까?
- 29. 사용자 지정 컨트롤에 대한 사용자 지정 아이콘 표시?
- 30. /baseaddress를 "좋은"값으로 설정하려면 어떻게해야합니까?
반환 전달 (FileApp (path, headers = ...))이 더 좋을지 궁금합니다. (앞으로는 pylons.controllers.util에서 온다.) –
'FileApp' 메소드는 훌륭하게 작동한다. 정말 고마워요. 결국 마침내 실제로 작동합니다! – EMP