그래서 현재 외부 파일에 일부 파일을 업로드하기 위해 HttpWebRequest
을 사용하는 컨텍스트에서 HTTP 파일 업로드를 연구 중이며 일반적으로 몇 십 개의 대시가 경계로 사용되는 것을 볼 수 있습니다. 브라우저는 대개 무작위로 선택된 16 진수를 대시에도 추가하는 것 같습니다.HTTP 파일 업로드 경계 선택
이것은 말하기가 끔찍하게 clunky처럼 보입니다. (프로토콜에서 결함을 감히 말합니까?). 내 특정 유즈 케이스에는 내가 사용하는 경계를 포함 할 수있는 데이터가 포함되어 있으므로 (업로드 한 데이터가 일종의 덤프 임) 업로드해야하는 파일이 100 % 확실해야합니다. 무작위로 숫자를 고르는 것은 실제 충돌 가능성이 10 억에 1이라 할지라도 나에게 용인되지 않습니다. 대상 스크립트가 일부 오류를 발견하면 다른 무작위로 선택한 경계로 다시 시도하는 것은 내가 좋아하는 것이 아닙니다.
내 선택한 전체 경계선이 존재하지 않는지 확인하기 위해 전체 파일 (대개 수십 메가 바이트)을 스캔하지 못하게하는 유일한 방법은 무엇입니까? 업로드와 함께 여러 가지 다른 요청을 수행해야하므로 I/O 패널티를 피하기 위해 전체 파일을 검색하지 않으려합니다.
크기 매개 변수가 있습니까? 그렇다면 전달할 수있는 매개 변수가 있습니까?
무엇이 누락 되었습니까? 원격 API를 변경하는 것은 옵션이 아니므로 Base64로 인코딩하거나 일종의 이스케이프 문자를 추가하는 것은 불가능합니다.
내가 상식을 가지고 있다고 말하면 처음에는이 경계 역학에 의문을 제기하지 않을 것입니다. ;) 분명히 파일 화 된 경계는 그 자체로는 꽤 무의미한 사건입니다. – Stigma
OP가 말하기 때문에, 당신은 이것에 대해 걱정할 필요가 없습니다. 예를 들어 파일을 읽고 MD5 해시를 생성하여이를 경계로 사용할 수 있습니다. 또한 WebClient를 사용하여 멀티 파트 업로드를 수행하는 방법을 보여주는 http://ferozedaud.blogspot.com/2010/03/multipart-form-upload-helper.html을 참조하십시오. 업로드 스트림 형식에 대한 대부분의 세부 정보를 처리합니다. – feroze
@feroze - 경계로 MD5 해시를 사용하면 어떤 이점이 있는지 알지 못합니다 ... 데이터의 해시가 데이터에서 발생하지 않는다는 것을 의미하는 것은 아닙니다 (OP의 포인트 임) – userx