6

PDFを任意のフォーマットに変換しようとしていますが、PDFファイルをアップロードした後のレスポンスはexportLinksのコンテンツではありません。GoogleドライブAPIを使用してPDFを任意のものに変換する

私はすでにexportLinkを取得するためのさまざまな管理方法を試してきました。他のドキュメント形式をアップロードして正常にエクスポートできます。 developers.google.comのコードを使用しました。

media_body = MediaFileUpload(filename, mimetype=mime_type, resumable=False) 
body = {'title': title, 
     'description': description, 
     'mimeType': mime_type, 
     } 
# Set the parent folder. 
if parent_id: 
    body['parents'] = [{'id': parent_id}] 

try: 
    request = service.files().insert(body=body, media_body=media_body) 
    #request.uri = "%s&convert=true&ocr=true" % request.uri 
    #request.uri = "%s&convert=true" % request.uri 
    request.uri = "https://www.googleapis.com/upload/drive/v2/files?uploadType=multipart&alt=json&convert=true" 
    logger.debug("Request: %s", request.uri) 
    file_obj = request.execute() 
    # Uncomment the following line to print the File ID 
    # print 'File ID: %s' % file_obj['id'] 
    import json 
    logger.debug('Get file result: %s' % json.dumps(file_obj, indent=4)) 
    return file_obj 

... 
export_links = source_file.get('exportLinks') 
if not export_links: 
    logger.debug('Warning: exportLinks does not exist') 

なぜPDFアップロードの応答にエクスポートリンクがないのですか?

Googleチームは、Drive APIによってPDFをアップロードしてエクスポートできることに同意してください。

おかげ

は、[UPD] ここHttplib2の要求ダンプがあります。私が見るように、クエリはマニュアルに従って適切に設定されています。ここで

Request: https://www.googleapis.com/upload/drive/v2/files?uploadType=multipart&alt=json&convert=true 
send: 'POST /upload/drive/v2/files?uploadType=multipart&alt=json&convert=true HTTP/1.1\r\n 
Host: www.googleapis.com\r\n 
content-length: 4425\r\n 
accept-encoding: gzip, deflate\r\n 
accept: application/json\r\n 
user-agent: google-api-python-client/1.0\r\n 
content-type: multipart/related; boundary="===============0758269123680398078=="\r\n 
authorization: Bearer ya29.AHES6ZRDT0AJX8a5JN_u_0epF6ZCMGcqwyru1wzj22oVlMO9CfmFzlo\r\n 
\r\n 
--===============0758269123680398078==\nContent-Type: application/json\nMIME-Version: 1.0\n\n{"mimeType": "application/pdf", "description": "", "title": "Short_pdf.pdf"}\n--=============== 

応じてdownloadLinkです: "downloadUrl": "https://doc-0c-2c-docs.googleusercontent.com/docs/securesc/2sgoib42bclb5coaj85g5574fd2b65bn/2lnqk989jdaepp4b8igdco1j8fu7m9l3/1373040000000/00639208221381605991/00639208221381605991/0By108D1dgCDkX0NFOXV0V2pNd2s?h=16653014193614665626&e=download&gd=true"、

+0

応答にダウンロードリンクが含まれていますか?そうであれば、変換は行われていません。また、メソッドを挿入するためにparamsを渡して、クエリパラメータを設定してください。 '.insert(body = b、media_body = m、convert = True)' –

+0

私は投稿を更新しました。何が間違っているのかを点検してください。また、変換パラメータを渡すように提案しましたが、成功しませんでした。リクエストヘッダーは更新プログラムと同じです。私はあなたがダウンロードリンクが "downloadUrl"であることを意味していたと思います。おかげで –

答えて

4

残念ながらGoogleドライブは、GoogleドライブのAPIを介してPDFファイルの変換機能を提供していません。

Googleドキュメント(Googleドキュメント/スプレッド/スライド/図面)はexportLinksで、複数のエクスポート形式でGoogleドキュメントをダウンロードできます。他のすべてのファイル - 基本的にPDFや画像などの通常のファイル - downloadUrlがあり、ファイル自体を元の形式でダウンロードできます。

+0

ありがとう、ありがとう。皆さんは、脳を蒸発させた人ではなくマニュアルを更新してください。ところで、私はまだダウンロードリンクを見つけることができません。 downloadUrl(https://developers.google.com/drive/manage-downloads)があります。 –

+0

申し訳ありません、実際にdownloadUrlです。downloadLinkはタイプミスです:) – Nivco

+0

ドキュメントのどの部分を更新するか教えてください。ドキュメントには、「Google Docのダウンロードとエクスポート - exportLinks」が記載されています。ここで、Googleドキュメントとは、Googleドキュメント/スプレッドシート/プレゼンテーション/図面を意味します。 PDFは通常のファイルですが、Googleドキュメントではないため、「downloadUrl」の対象となります。 – Nivco

関連する問題