2016-06-22 5 views
0

Google 서비스에 TFS를 구현 중입니다. 나는 OAuth2를 사용하고 있으며, 매력처럼 작동하고 있습니다. 권한 범위 "vso.work_write vso.project"을 요청하고 있는데 어쨌든 첨부 파일을 업로드 할 수 없습니다. 나는 서버에서 403 Forbidden을 얻고있다. 미시시피 문서가이 주제에 구멍이 가득 찰 때 어쩌면 누군가가 을 가리킬 수 있습니까? 내 인증에 어떤 것을 추가해야합니까??TFS REST 업로드 첨부 파일 권한 문제

아마도 중요하지 않지만 Nginx/Python을 사용하고 있으며 표준 요청 lib로 요청을하고 있습니다.

코드 예제 : 코드에 대한

headers={'Accept': 'application/json', 
        'Authorization': self.__auth()} 

url = self.__makeUrl(("/wit/attachments?fileName=%s&api-version=1.0" % fileName), self.project) 
response = self.client.post(url, base64.b64encode(filecontent), headers=headers) 

헤드 업 : 요청하게됩니다

def __auth(self): 
     return "Bearer " + self.token 

def __makeUrl(self, resource, project=None): 
     if project: 
      return (self.baseurl % (self.domain, "%s/" % project)) + resource 
     else: 
      return (self.baseurl % (self.domain, "")) + resource 

코드입니다. 나는 다른 요청 (e.q. 프로젝트 및 프로젝트 유형 읽기)에 대해 동일한 로직을 사용함에 따라 URL을 생성하는 것이 거의 확실하다는 것을 확신합니다.

실제로 올바른 방향으로 밀어 넣기를 사용할 수 있습니다.

답변

0

이렇게 .... 이건 고통 스럽지만,을 업로드 할 때 URL에 프로젝트 이름이 필요하지 않은 것 같습니다. . 그게 실수 였어. 범위 사용 권한이 좋습니다. (현재 모든 것을 사용할 수있는 상태로 테스트하고 있습니다)하지만 뭔가가 다를 경우 최종 상태를 게시 할 것입니다.

너무 나쁜 서비스는 디버깅에 유용한 정보를 제공하지 않습니다.

누구나 비슷한 문제가있는 경우 모든 요청을 통해 일정한 형식이 아니므로 URL을 다시 확인하십시오.

/wit/attachments? filename이 (가) 작은 글자인지 확인하십시오. 설명서 에서처럼 두 형식으로 모두 찾을 수 있습니다.

그리고 base32 인코딩없이 사진을 업로드해야하는 것처럼 보입니다. 그것은 이미지 콘텐츠 데이터를 읽는 데 사용하는 S3 버킷 라이브러리에서 자동으로 수행됩니다.