<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Upload session api creating empty files in Dropbox API Support &amp; Feedback</title>
    <link>https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/Upload-session-api-creating-empty-files/m-p/306048#M18442</link>
    <description>&lt;PRE&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;requests&lt;BR /&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;json&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;class &lt;/SPAN&gt;&lt;SPAN&gt;DropboxUtil&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;    _token &lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;None&lt;BR /&gt;&lt;/SPAN&gt;    _logger &lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;None&lt;BR /&gt;&lt;/SPAN&gt;    UPLOAD_SIZE &lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;149 &lt;/SPAN&gt;&lt;SPAN&gt;* &lt;/SPAN&gt;&lt;SPAN&gt;1024 &lt;/SPAN&gt;&lt;SPAN&gt;* &lt;/SPAN&gt;&lt;SPAN&gt;1024&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;def &lt;/SPAN&gt;&lt;SPAN&gt;__init__&lt;/SPAN&gt;(&lt;SPAN&gt;self&lt;/SPAN&gt;, &lt;SPAN&gt;token&lt;/SPAN&gt;)&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;        DropboxUtil._token &lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;"Bearer " &lt;/SPAN&gt;&lt;SPAN&gt;+ &lt;/SPAN&gt;&lt;SPAN&gt;token&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;def &lt;/SPAN&gt;&lt;SPAN&gt;upload&lt;/SPAN&gt;(&lt;SPAN&gt;self&lt;/SPAN&gt;, &lt;SPAN&gt;data = None&lt;/SPAN&gt;)&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;"""&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;        Start a new upload session and upload the requested content to desired directory on Dropbox.&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;        """&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;try&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;            upload_url &lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;"https://content.dropboxapi.com/2/files/upload_session/start"&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;            api_arguments &lt;SPAN&gt;= &lt;/SPAN&gt;{&lt;BR /&gt;                &lt;SPAN&gt;"close" &lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;False&lt;BR /&gt;&lt;/SPAN&gt;            }&lt;BR /&gt;&lt;BR /&gt;            upload_response &lt;SPAN&gt;= &lt;/SPAN&gt;requests.&lt;SPAN&gt;post&lt;/SPAN&gt;(upload_url, &lt;SPAN&gt;headers &lt;/SPAN&gt;&lt;SPAN&gt;= &lt;/SPAN&gt;{&lt;BR /&gt;                &lt;SPAN&gt;"Authorization" &lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;._token,&lt;BR /&gt;                &lt;SPAN&gt;"Dropbox-API-Arg" &lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;json.&lt;SPAN&gt;dumps&lt;/SPAN&gt;(api_arguments),&lt;BR /&gt;                &lt;SPAN&gt;"Content-Type" &lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;"application/octet-stream"&lt;BR /&gt;&lt;/SPAN&gt;            })&lt;BR /&gt;&lt;BR /&gt;            &lt;SPAN&gt;if &lt;/SPAN&gt;&lt;SPAN&gt;"session_id" &lt;/SPAN&gt;&lt;SPAN&gt;in &lt;/SPAN&gt;upload_response.&lt;SPAN&gt;json&lt;/SPAN&gt;()&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;                &lt;SPAN&gt;return &lt;/SPAN&gt;upload_response.&lt;SPAN&gt;json&lt;/SPAN&gt;()[&lt;SPAN&gt;'session_id'&lt;/SPAN&gt;]&lt;BR /&gt;            &lt;SPAN&gt;else&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;                &lt;SPAN&gt;raise &lt;/SPAN&gt;&lt;SPAN&gt;Exception&lt;/SPAN&gt;(&lt;SPAN&gt;"Unable to upload file to Dropbox"&lt;/SPAN&gt;)&lt;BR /&gt;        &lt;SPAN&gt;except &lt;/SPAN&gt;&lt;SPAN&gt;Exception &lt;/SPAN&gt;&lt;SPAN&gt;as &lt;/SPAN&gt;e&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;            &lt;SPAN&gt;raise &lt;/SPAN&gt;e&lt;BR /&gt;&lt;BR /&gt;    &lt;SPAN&gt;def &lt;/SPAN&gt;&lt;SPAN&gt;_append_to_upload&lt;/SPAN&gt;(&lt;SPAN&gt;self&lt;/SPAN&gt;, &lt;SPAN&gt;session_id&lt;/SPAN&gt;, &lt;SPAN&gt;offset&lt;/SPAN&gt;, &lt;SPAN&gt;data&lt;/SPAN&gt;)&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;try&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;            append_uri &lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;"https://content.dropboxapi.com/2/files/upload_session/append_v2"&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;            api_arguments &lt;SPAN&gt;= &lt;/SPAN&gt;{&lt;BR /&gt;                &lt;SPAN&gt;"cursor"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;{&lt;BR /&gt;                    &lt;SPAN&gt;"session_id"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;session_id&lt;/SPAN&gt;,&lt;BR /&gt;                    &lt;SPAN&gt;"offset"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;offset&lt;BR /&gt;&lt;/SPAN&gt;                },&lt;BR /&gt;                &lt;SPAN&gt;"close"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;False&lt;BR /&gt;&lt;/SPAN&gt;            }&lt;BR /&gt;&lt;BR /&gt;            requests.&lt;SPAN&gt;post&lt;/SPAN&gt;(append_uri, &lt;SPAN&gt;data&lt;/SPAN&gt;, &lt;SPAN&gt;headers&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;{&lt;BR /&gt;                &lt;SPAN&gt;"Authorization" &lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;._token,&lt;BR /&gt;                &lt;SPAN&gt;"Content-Type" &lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;"application/octet-stream"&lt;/SPAN&gt;,&lt;BR /&gt;                &lt;SPAN&gt;"Dropbox-API-Arg" &lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;json.&lt;SPAN&gt;dumps&lt;/SPAN&gt;(api_arguments)&lt;BR /&gt;            })&lt;BR /&gt;        &lt;SPAN&gt;except &lt;/SPAN&gt;&lt;SPAN&gt;Exception &lt;/SPAN&gt;&lt;SPAN&gt;as &lt;/SPAN&gt;e&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;            &lt;SPAN&gt;raise &lt;/SPAN&gt;e&lt;BR /&gt;&lt;BR /&gt;    &lt;SPAN&gt;def &lt;/SPAN&gt;&lt;SPAN&gt;_finish_upload&lt;/SPAN&gt;(&lt;SPAN&gt;self&lt;/SPAN&gt;, &lt;SPAN&gt;filepath&lt;/SPAN&gt;, &lt;SPAN&gt;offset&lt;/SPAN&gt;, &lt;SPAN&gt;session_id&lt;/SPAN&gt;)&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;"""&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;        Ends current upload session and creates the file with given filename. Offset is the total size if file in bytes.&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;        """&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;try&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;            finish_upload_url &lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;"https://content.dropboxapi.com/2/files/upload_session/finish"&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;            api_arguments &lt;SPAN&gt;= &lt;/SPAN&gt;{&lt;BR /&gt;                &lt;SPAN&gt;"cursor"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;{&lt;BR /&gt;                    &lt;SPAN&gt;"session_id"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;session_id&lt;/SPAN&gt;,&lt;BR /&gt;                    &lt;SPAN&gt;"offset"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;offset&lt;BR /&gt;&lt;/SPAN&gt;                },&lt;BR /&gt;                &lt;SPAN&gt;"commit"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;{&lt;BR /&gt;                    &lt;SPAN&gt;"path"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;filepath&lt;/SPAN&gt;,&lt;BR /&gt;                    &lt;SPAN&gt;"mode"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;"add"&lt;/SPAN&gt;,&lt;BR /&gt;                    &lt;SPAN&gt;"autorename"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;True&lt;/SPAN&gt;,&lt;BR /&gt;                    &lt;SPAN&gt;"mute"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;False&lt;/SPAN&gt;,&lt;BR /&gt;                    &lt;SPAN&gt;"strict_conflict"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;False&lt;BR /&gt;&lt;/SPAN&gt;                }&lt;BR /&gt;            }&lt;BR /&gt;&lt;BR /&gt;            finish_response &lt;SPAN&gt;= &lt;/SPAN&gt;requests.&lt;SPAN&gt;post&lt;/SPAN&gt;(finish_upload_url, &lt;SPAN&gt;headers &lt;/SPAN&gt;&lt;SPAN&gt;= &lt;/SPAN&gt;{&lt;BR /&gt;                &lt;SPAN&gt;"Authorization" &lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;._token,&lt;BR /&gt;                &lt;SPAN&gt;"Content-Type" &lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;"application/octet-stream"&lt;/SPAN&gt;,&lt;BR /&gt;                &lt;SPAN&gt;"Dropbox-API-Arg" &lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;json.&lt;SPAN&gt;dumps&lt;/SPAN&gt;(api_arguments)&lt;BR /&gt;            })&lt;BR /&gt;            &lt;SPAN&gt;print&lt;/SPAN&gt;(finish_response.content)&lt;BR /&gt;        &lt;SPAN&gt;except &lt;/SPAN&gt;&lt;SPAN&gt;Exception &lt;/SPAN&gt;&lt;SPAN&gt;as &lt;/SPAN&gt;e&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;            &lt;SPAN&gt;raise &lt;/SPAN&gt;e&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;if &lt;/SPAN&gt;__name__ &lt;SPAN&gt;== &lt;/SPAN&gt;&lt;SPAN&gt;'__main__'&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;    db &lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;DropboxUtil&lt;/SPAN&gt;(&lt;SPAN&gt;'&amp;lt;token&amp;gt;'&lt;/SPAN&gt;)&lt;BR /&gt;    session_id &lt;SPAN&gt;= &lt;/SPAN&gt;db.&lt;SPAN&gt;upload&lt;/SPAN&gt;()&lt;BR /&gt;    data &lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;b'test_data'&lt;BR /&gt;&lt;/SPAN&gt;    db.&lt;SPAN&gt;_append_to_upload&lt;/SPAN&gt;(session_id, &lt;SPAN&gt;len&lt;/SPAN&gt;(data), data)&lt;BR /&gt;    db.&lt;SPAN&gt;_finish_upload&lt;/SPAN&gt;(&lt;SPAN&gt;'/test11.txt'&lt;/SPAN&gt;, &lt;SPAN&gt;0&lt;/SPAN&gt;, session_id)&amp;nbsp;&amp;nbsp;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Why does test11.txt is always created with no content ?&lt;/P&gt;</description>
    <pubDate>Wed, 29 May 2019 09:09:35 GMT</pubDate>
    <dc:creator>ankit_goyal</dc:creator>
    <dc:date>2019-05-29T09:09:35Z</dc:date>
    <item>
      <title>Upload session api creating empty files</title>
      <link>https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/Upload-session-api-creating-empty-files/m-p/306048#M18442</link>
      <description>&lt;PRE&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;requests&lt;BR /&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;json&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;class &lt;/SPAN&gt;&lt;SPAN&gt;DropboxUtil&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;    _token &lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;None&lt;BR /&gt;&lt;/SPAN&gt;    _logger &lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;None&lt;BR /&gt;&lt;/SPAN&gt;    UPLOAD_SIZE &lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;149 &lt;/SPAN&gt;&lt;SPAN&gt;* &lt;/SPAN&gt;&lt;SPAN&gt;1024 &lt;/SPAN&gt;&lt;SPAN&gt;* &lt;/SPAN&gt;&lt;SPAN&gt;1024&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;def &lt;/SPAN&gt;&lt;SPAN&gt;__init__&lt;/SPAN&gt;(&lt;SPAN&gt;self&lt;/SPAN&gt;, &lt;SPAN&gt;token&lt;/SPAN&gt;)&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;        DropboxUtil._token &lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;"Bearer " &lt;/SPAN&gt;&lt;SPAN&gt;+ &lt;/SPAN&gt;&lt;SPAN&gt;token&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;def &lt;/SPAN&gt;&lt;SPAN&gt;upload&lt;/SPAN&gt;(&lt;SPAN&gt;self&lt;/SPAN&gt;, &lt;SPAN&gt;data = None&lt;/SPAN&gt;)&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;"""&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;        Start a new upload session and upload the requested content to desired directory on Dropbox.&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;        """&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;try&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;            upload_url &lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;"https://content.dropboxapi.com/2/files/upload_session/start"&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;            api_arguments &lt;SPAN&gt;= &lt;/SPAN&gt;{&lt;BR /&gt;                &lt;SPAN&gt;"close" &lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;False&lt;BR /&gt;&lt;/SPAN&gt;            }&lt;BR /&gt;&lt;BR /&gt;            upload_response &lt;SPAN&gt;= &lt;/SPAN&gt;requests.&lt;SPAN&gt;post&lt;/SPAN&gt;(upload_url, &lt;SPAN&gt;headers &lt;/SPAN&gt;&lt;SPAN&gt;= &lt;/SPAN&gt;{&lt;BR /&gt;                &lt;SPAN&gt;"Authorization" &lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;._token,&lt;BR /&gt;                &lt;SPAN&gt;"Dropbox-API-Arg" &lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;json.&lt;SPAN&gt;dumps&lt;/SPAN&gt;(api_arguments),&lt;BR /&gt;                &lt;SPAN&gt;"Content-Type" &lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;"application/octet-stream"&lt;BR /&gt;&lt;/SPAN&gt;            })&lt;BR /&gt;&lt;BR /&gt;            &lt;SPAN&gt;if &lt;/SPAN&gt;&lt;SPAN&gt;"session_id" &lt;/SPAN&gt;&lt;SPAN&gt;in &lt;/SPAN&gt;upload_response.&lt;SPAN&gt;json&lt;/SPAN&gt;()&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;                &lt;SPAN&gt;return &lt;/SPAN&gt;upload_response.&lt;SPAN&gt;json&lt;/SPAN&gt;()[&lt;SPAN&gt;'session_id'&lt;/SPAN&gt;]&lt;BR /&gt;            &lt;SPAN&gt;else&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;                &lt;SPAN&gt;raise &lt;/SPAN&gt;&lt;SPAN&gt;Exception&lt;/SPAN&gt;(&lt;SPAN&gt;"Unable to upload file to Dropbox"&lt;/SPAN&gt;)&lt;BR /&gt;        &lt;SPAN&gt;except &lt;/SPAN&gt;&lt;SPAN&gt;Exception &lt;/SPAN&gt;&lt;SPAN&gt;as &lt;/SPAN&gt;e&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;            &lt;SPAN&gt;raise &lt;/SPAN&gt;e&lt;BR /&gt;&lt;BR /&gt;    &lt;SPAN&gt;def &lt;/SPAN&gt;&lt;SPAN&gt;_append_to_upload&lt;/SPAN&gt;(&lt;SPAN&gt;self&lt;/SPAN&gt;, &lt;SPAN&gt;session_id&lt;/SPAN&gt;, &lt;SPAN&gt;offset&lt;/SPAN&gt;, &lt;SPAN&gt;data&lt;/SPAN&gt;)&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;try&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;            append_uri &lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;"https://content.dropboxapi.com/2/files/upload_session/append_v2"&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;            api_arguments &lt;SPAN&gt;= &lt;/SPAN&gt;{&lt;BR /&gt;                &lt;SPAN&gt;"cursor"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;{&lt;BR /&gt;                    &lt;SPAN&gt;"session_id"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;session_id&lt;/SPAN&gt;,&lt;BR /&gt;                    &lt;SPAN&gt;"offset"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;offset&lt;BR /&gt;&lt;/SPAN&gt;                },&lt;BR /&gt;                &lt;SPAN&gt;"close"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;False&lt;BR /&gt;&lt;/SPAN&gt;            }&lt;BR /&gt;&lt;BR /&gt;            requests.&lt;SPAN&gt;post&lt;/SPAN&gt;(append_uri, &lt;SPAN&gt;data&lt;/SPAN&gt;, &lt;SPAN&gt;headers&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;{&lt;BR /&gt;                &lt;SPAN&gt;"Authorization" &lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;._token,&lt;BR /&gt;                &lt;SPAN&gt;"Content-Type" &lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;"application/octet-stream"&lt;/SPAN&gt;,&lt;BR /&gt;                &lt;SPAN&gt;"Dropbox-API-Arg" &lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;json.&lt;SPAN&gt;dumps&lt;/SPAN&gt;(api_arguments)&lt;BR /&gt;            })&lt;BR /&gt;        &lt;SPAN&gt;except &lt;/SPAN&gt;&lt;SPAN&gt;Exception &lt;/SPAN&gt;&lt;SPAN&gt;as &lt;/SPAN&gt;e&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;            &lt;SPAN&gt;raise &lt;/SPAN&gt;e&lt;BR /&gt;&lt;BR /&gt;    &lt;SPAN&gt;def &lt;/SPAN&gt;&lt;SPAN&gt;_finish_upload&lt;/SPAN&gt;(&lt;SPAN&gt;self&lt;/SPAN&gt;, &lt;SPAN&gt;filepath&lt;/SPAN&gt;, &lt;SPAN&gt;offset&lt;/SPAN&gt;, &lt;SPAN&gt;session_id&lt;/SPAN&gt;)&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;"""&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;        Ends current upload session and creates the file with given filename. Offset is the total size if file in bytes.&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;        """&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;try&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;            finish_upload_url &lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;"https://content.dropboxapi.com/2/files/upload_session/finish"&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;            api_arguments &lt;SPAN&gt;= &lt;/SPAN&gt;{&lt;BR /&gt;                &lt;SPAN&gt;"cursor"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;{&lt;BR /&gt;                    &lt;SPAN&gt;"session_id"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;session_id&lt;/SPAN&gt;,&lt;BR /&gt;                    &lt;SPAN&gt;"offset"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;offset&lt;BR /&gt;&lt;/SPAN&gt;                },&lt;BR /&gt;                &lt;SPAN&gt;"commit"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;{&lt;BR /&gt;                    &lt;SPAN&gt;"path"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;filepath&lt;/SPAN&gt;,&lt;BR /&gt;                    &lt;SPAN&gt;"mode"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;"add"&lt;/SPAN&gt;,&lt;BR /&gt;                    &lt;SPAN&gt;"autorename"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;True&lt;/SPAN&gt;,&lt;BR /&gt;                    &lt;SPAN&gt;"mute"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;False&lt;/SPAN&gt;,&lt;BR /&gt;                    &lt;SPAN&gt;"strict_conflict"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;False&lt;BR /&gt;&lt;/SPAN&gt;                }&lt;BR /&gt;            }&lt;BR /&gt;&lt;BR /&gt;            finish_response &lt;SPAN&gt;= &lt;/SPAN&gt;requests.&lt;SPAN&gt;post&lt;/SPAN&gt;(finish_upload_url, &lt;SPAN&gt;headers &lt;/SPAN&gt;&lt;SPAN&gt;= &lt;/SPAN&gt;{&lt;BR /&gt;                &lt;SPAN&gt;"Authorization" &lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;._token,&lt;BR /&gt;                &lt;SPAN&gt;"Content-Type" &lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;"application/octet-stream"&lt;/SPAN&gt;,&lt;BR /&gt;                &lt;SPAN&gt;"Dropbox-API-Arg" &lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;json.&lt;SPAN&gt;dumps&lt;/SPAN&gt;(api_arguments)&lt;BR /&gt;            })&lt;BR /&gt;            &lt;SPAN&gt;print&lt;/SPAN&gt;(finish_response.content)&lt;BR /&gt;        &lt;SPAN&gt;except &lt;/SPAN&gt;&lt;SPAN&gt;Exception &lt;/SPAN&gt;&lt;SPAN&gt;as &lt;/SPAN&gt;e&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;            &lt;SPAN&gt;raise &lt;/SPAN&gt;e&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;if &lt;/SPAN&gt;__name__ &lt;SPAN&gt;== &lt;/SPAN&gt;&lt;SPAN&gt;'__main__'&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;    db &lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;DropboxUtil&lt;/SPAN&gt;(&lt;SPAN&gt;'&amp;lt;token&amp;gt;'&lt;/SPAN&gt;)&lt;BR /&gt;    session_id &lt;SPAN&gt;= &lt;/SPAN&gt;db.&lt;SPAN&gt;upload&lt;/SPAN&gt;()&lt;BR /&gt;    data &lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;b'test_data'&lt;BR /&gt;&lt;/SPAN&gt;    db.&lt;SPAN&gt;_append_to_upload&lt;/SPAN&gt;(session_id, &lt;SPAN&gt;len&lt;/SPAN&gt;(data), data)&lt;BR /&gt;    db.&lt;SPAN&gt;_finish_upload&lt;/SPAN&gt;(&lt;SPAN&gt;'/test11.txt'&lt;/SPAN&gt;, &lt;SPAN&gt;0&lt;/SPAN&gt;, session_id)&amp;nbsp;&amp;nbsp;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Why does test11.txt is always created with no content ?&lt;/P&gt;</description>
      <pubDate>Wed, 29 May 2019 09:09:35 GMT</pubDate>
      <guid>https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/Upload-session-api-creating-empty-files/m-p/306048#M18442</guid>
      <dc:creator>ankit_goyal</dc:creator>
      <dc:date>2019-05-29T09:09:35Z</dc:date>
    </item>
    <item>
      <title>Re: Upload session api creating empty files</title>
      <link>https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/Upload-session-api-creating-empty-files/m-p/306114#M18449</link>
      <description>&lt;P&gt;I see from your code that you're only sending data with the append call. You can actually send data on any/all of the start, append, and finish calls, though it's not required. (Also, for small uploads like this, you don't need to use upload sessions at all, but I presume this is just for the sake of testing the code during development.)&lt;/P&gt;
&lt;P&gt;Anyway, you are sending data with the append call, but you aren't checking if that call is succeeding.&amp;nbsp;You should check the result and add some error handling around the append call. You can check success via the returned status code, and check the response body for more information.&lt;/P&gt;
&lt;P&gt;I suspect the underlying issue is due to your "offset" handling, and is being obscured by the lack of response/error handling for the append call. Specifically, &lt;A href="https://www.dropbox.com/developers/documentation/http/documentation#files-upload_session-append" target="_blank"&gt;the "offset" you supply should be&lt;/A&gt; "The amount of data that has been uploaded so far" (for the upload session overall), not how much you're sending in the current request, as you appear to have in your code with `len(data)`.&lt;/P&gt;</description>
      <pubDate>Mon, 29 Oct 2018 18:09:50 GMT</pubDate>
      <guid>https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/Upload-session-api-creating-empty-files/m-p/306114#M18449</guid>
      <dc:creator>Greg-DB</dc:creator>
      <dc:date>2018-10-29T18:09:50Z</dc:date>
    </item>
    <item>
      <title>Re: Upload session api creating empty files</title>
      <link>https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/Upload-session-api-creating-empty-files/m-p/306214#M18454</link>
      <description>&lt;P&gt;Hi Greg&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks for your response.&amp;nbsp;&lt;/P&gt;&lt;P&gt;Yes you are right, the issue is with offset only. It is working now. But as per the documentation&amp;nbsp;&lt;A href="https://www.dropbox.com/developers/documentation/http/documentation#files-upload_session-append" target="_blank"&gt;https://www.dropbox.com/developers/documentation/http/documentation#files-upload_session-append&lt;/A&gt; , the append method does not have any return value.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 30 Oct 2018 04:36:47 GMT</pubDate>
      <guid>https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/Upload-session-api-creating-empty-files/m-p/306214#M18454</guid>
      <dc:creator>ankit_goyal</dc:creator>
      <dc:date>2018-10-30T04:36:47Z</dc:date>
    </item>
    <item>
      <title>Re: Upload session api creating empty files</title>
      <link>https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/Upload-session-api-creating-empty-files/m-p/306292#M18457</link>
      <description>&lt;P&gt;It doesn't have a successful return value, but it can raise a number of different errors. You should still check the response for an error. You can check the status code to determine success/failure at a high level, and check the response body for specific error information. With the incorrect code you had, for instance, the body would have contained error information about the incorrect offset.&lt;/P&gt;</description>
      <pubDate>Tue, 30 Oct 2018 15:10:11 GMT</pubDate>
      <guid>https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/Upload-session-api-creating-empty-files/m-p/306292#M18457</guid>
      <dc:creator>Greg-DB</dc:creator>
      <dc:date>2018-10-30T15:10:11Z</dc:date>
    </item>
  </channel>
</rss>

