2016-06-22 18 views
0

私たちのサービスにTFSを実装しています。私はOAuth2を使用していますが、それは魅力的なように機能しています。私はパーミッションスコープ "vso.work_write vso.project"を要求していますが、何とか私は添付ファイルをアップロードできません。私は403 Forbiddenをサーバーから取得しています。 MSのドキュメントは、この件名に穴がいっぱいあるので、私のスコープの権限がOKかどうかを誰かが指摘しているかもしれません。?私は自分の認証にどのように追加すればいいですか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の生成はOKです。

実際に正しい方向にプッシュを使用できます。

答えて

0

だから、これは痛いですが、添付ファイルをアップロードするときにURLにプロジェクト名は必要ないようです。それは間違いでした。スコープの権限は問題ありません。 (現時点ではすべての機能を有効にしてテストしていますが)何かが異なる場合は最終的なステータスを投稿します。

サービスがあまりにも悪いと、デバッグに役立つ情報が少ししかありません。

誰かが同様の問題を抱えている場合は、すべてのリクエストを通じて一定の形式でないため、URLを再確認してください。

また、/ wit/attachments?filenameが小文字のであることも確認してください。ドキュメントのように、両方の形式で見つけることができます。

これは、base64エンコードのない画像をアップロードする必要があるようです。それは私がイメージコンテンツのデータを読むために使用しているS3バケットライブラリから自動的に行われます。

関連する問題