glowscript.org에서 찾은 응용 프로그램의 GAE를 Python 2.5에서 Python 2.7로 업데이트 할 때 심각한 문제가 있습니다. 현재 GAE Launcher 1.7.6을 사용하여 Windows에서 로컬로 테스트 중입니다.Python 2.5와 Python 2.7 사이의 심각한 GAE 호환성 문제
사용자는 공백이 포함 된 이름으로 폴더를 만들 수 있으며 응용 프로그램은 공백을 '% 20'(으)로 변환하여 데이터 저장소의 키를 만듭니다. 이 폴더 내부의 파일 이름도 마찬가지입니다. glowscript.org에는 데이터가 그러한 키에 의존하는 상당수의 사용자가 존재합니다.
파이썬 2.7 버전에서 이상한 문제를 로컬에서 디버깅하려고 시도하면서 GAE 데이터 저장소 시스템에 큰 변화가 있음이 분명해졌습니다. 사용자가 'Test Cases'라는 폴더를 생성한다고 가정합니다. glowscript.org와 일치하여이 폴더 이름은 'Test % 20Cases'로 변환되어 PUT 작업의 키로 사용됩니다.
folder = '테스트 % 20Cases' f = 폴더 (parent = 사용자 이름, key_name = 폴더 , public = True) # Folder는 db.Model에서 상속받습니다. f.put()
파이썬 2.7 및 실행기 1.7.6을 실행할 때 로그에 표시된 내용은 '% 20'이 공간 :
200 "/ API/사용자/test0324k/폴더/테스트 케이스 HTTP/1.1 PUT"-
을 나는 샘을 수행 할 때
-"PUT/API/사용자/test0324k/폴더/테스트 % 20Cases HTTP/1.1"200 : 파이썬 2.5 GAE 실행기 1.7.2와 전자 조작 (로컬), 이것은 내가 로그에 표시되는 내용입니다
웹에 배포하면 데이터에 '% 20'이 (가) 포함 된 키가 있기 때문에 오류가 발생하므로 해당 키에 연결할 수 없습니다. Python 2.5 버전은 이미 사용되지 않으므로 곧 사라질 예정입니다. 많은 사람들의 작업을 망치지 않고 앞으로 나아갈 수있는 방법은 무엇입니까?
폴더 모델에서 공백을 바꾸지 않는 이유는 무엇입니까? 그냥 넣기 전에. –
이러한 로그 메시지는 데이터 저장소와 아무 관련이 없습니다. 그들은 HTTP PUT 요청을 로깅하고 있습니다. –