upload file to get HttpResponseTag 401 #83

Open
indian4646 opened this Issue Jul 2, 2012 · 4 comments

Comments

Projects
None yet
2 participants
@indian4646

Hi
I tried to modify code to upload over 2G file, it is work now. But I often to get 401 from server which will crash and can't go on.

sync "./2.3G" doesn't exist in server, uploading
pooh.sizeleftllu = 2306867200
sync "./2.2M" doesn't exist in server, uploading
pooh.sizeleftllu = 2245741
exception: /root/host/NasX86/SysUtil/Grive-grive-v0.1.1-20-g277274f/libgrive/src/http/CurlAgent.cc(164): Throw in function long int gr::http::CurlAgent::ExecCurl(const std::string&, gr::http::Receivable_, const gr::http::Header&)
Dynamic exception type: boost::exception_detail::clone_implgr::http::Error
std::exception::what: std::exception
[gr::expt::MsgTag_] =
[gr::http::CurlCodeTag_] = 0
[gr::http::HttpResponseTag_] = 401
[gr::http::UrlTag_] = https://docs.google.com/feeds/upload/create-session/default/private/full?convert=false
[gr::http::HeaderTag_] = Authorization: Bearer ya29.AHES6ZQcf5lIIt2q_SrHm7FoNQrz9m9Uf40t9bwkridoQOo_
GData-Version: 3.0
Content-Type: application/atom+xml
X-Upload-Content-Type: application/octet-stream
X-Upload-Content-Length: 2245741
If-Match:
Expect:

[gr::expt::BacktraceTag*] = #0 0xd15f0 crtstuff.c:0 gr::Exception::Exception()
#1 0xbdc38 crtstuff.c:0 gr::http::Error::Error()
#2 0xb9e30 crtstuff.c:0 gr::http::CurlAgent::ExecCurl(std::string const&, gr::http::Receivable*, gr::http::Header const&)
#3 0xba7a8 crtstuff.c:0 gr::http::CurlAgent::Post(std::string const&, std::string const&, gr::http::Receivable*, gr::http::Header const&)
#4 0xb14cc crtstuff.c:0 gr::Resource::Upload(gr::http::Agent*, std::string const&, gr::http::Header const&, bool)
#5 0xb1fb4 crtstuff.c:0 gr::Resource::Create(gr::http::Agent*, gr::http::Header const&)
#6 0xb2790 crtstuff.c:0 gr::Resource::SyncSelf(gr::http::Agent*, gr::http::Header const&)
#7 0xb2d48 crtstuff.c:0 gr::Resource::Sync(gr::http::Agent*, gr::http::Header const&)
#8 0xb3b78 crtstuff.c:0 boost::mfi::mf2<void, gr::Resource, gr::http::Agent*, gr::http::Header const&>::operator()(gr::Resource, gr::http::Agent_, gr::http::Header const&) const
#9 0xb3ddc crtstuff.c:0 void boost::_bi::list3boost::arg<1, boost::_bi::valuegr::http::Agent*, boost::_bi::valuegr::http::Header >::operator()<boost::_mfi::mf2<void, gr::Resource, gr::http::Agent*, gr::http::Header const&>, boost::_bi::list1gr::Resource*& >(boost::_bi::type, boost::_mfi::mf2<void, gr::Resource, gr::http::Agent*, gr::http::Header const&>&, boost::_bi::list1gr::Resource*&&, int)
#10 0xb3e3c crtstuff.c:0 void boost::_bi::bind_t<void, boost::_mfi::mf2<void, gr::Resource, gr::http::Agent*, gr::http::Header const&>, boost::_bi::list3boost::arg<1, boost::_bi::valuegr::http::Agent*, boost::_bi::valuegr::http::Header > >::operator()gr::Resource*(gr::Resource*&)
#11 0xb463c crtstuff.c:0 boost::_bi::bind_t<void, boost::_mfi::mf2<void, gr::Resource, gr::http::Agent*, gr::http::Header const&>, boost::_bi::list3boost::arg<1, boost::_bi::valuegr::http::Agent*, boost::_bi::valuegr::http::Header > > std::for_each<__gnu_cxx::__normal_iterator<gr::Resource**, std::vector<gr::Resource*, std::allocatorgr::Resource* > >, boost::_bi::bind_t<void, boost::_mfi::mf2<void, gr::Resource, gr::http::Agent*, gr::http::Header const&>, boost::_bi::list3boost::arg<1, boost::_bi::valuegr::http::Agent*, boost::_bi::valuegr::http::Header > > >(__gnu_cxx::__normal_iterator<gr::Resource**, std::vector<gr::Resource*, std::allocatorgr::Resource* > >, __gnu_cxx::__normal_iterator<gr::Resource**, std::vector<gr::Resource*, std::allocatorgr::Resource* > >, boost::_bi::bind_t<void, boost::_mfi::mf2<void, gr::Resource, gr::http::Agent*, gr::http::Header const&>, boost::_bi::list3boost::arg<1, boost::_bi::valuegr::http::Agent*, boost::_bi::valuegr::http::Header > >)
#12 0xb2dfc crtstuff.c:0 gr::Resource::Sync(gr::http::Agent*, gr::http::Header const&)
#13 0xa5cf0 crtstuff.c:0 gr::State::Sync(gr::http::Agent*, gr::http::Header const&)
#14 0x9f22c crtstuff.c:0 gr::Drive::Update()
#15 0x7c798 crtstuff.c:0 Main(int, char**)
#16 0x7c9d4 crtstuff.c:0 main
#17 0x403e3924 /lib/libc.so.6 __libc_start_main
#18 0x7a5e0 crtstuff.c:0 _start

@nestal

This comment has been minimized.

Show comment Hide comment
@nestal

nestal Jul 2, 2012

Member

This is an "access denied" error from the server.

https://developers.google.com/google-apps/documents-list/#suggested_methods_for_handling_various_api_responses

I suppose the server doesn't let you upload a file that large.

Member

nestal commented Jul 2, 2012

This is an "access denied" error from the server.

https://developers.google.com/google-apps/documents-list/#suggested_methods_for_handling_various_api_responses

I suppose the server doesn't let you upload a file that large.

@indian4646

This comment has been minimized.

Show comment Hide comment
@indian4646

indian4646 Jul 3, 2012

Hi nestal
I have uploaded 2G file to google drive, I could see my file in google, but sometime it happened error in next file (above example), sometime in large file. It spent a lot of time to upload a file. There is any limitation in google for my attention. Is it
possible 'Access tokens expire' ?

Excuse me, I have a other question about Resuming an incomplete upload, is the grive supporting this ?

https://developers.google.com/google-apps/documents-list/#resuming_an_incomplete_upload

Thank your reply.

Hi nestal
I have uploaded 2G file to google drive, I could see my file in google, but sometime it happened error in next file (above example), sometime in large file. It spent a lot of time to upload a file. There is any limitation in google for my attention. Is it
possible 'Access tokens expire' ?

Excuse me, I have a other question about Resuming an incomplete upload, is the grive supporting this ?

https://developers.google.com/google-apps/documents-list/#resuming_an_incomplete_upload

Thank your reply.

@nestal

This comment has been minimized.

Show comment Hide comment
@nestal

nestal Jul 7, 2012

Member

Currently grive is too stupid that it read the whole file to memory. In your case it just allocate 2G or memory and load the file to it. It is quite crazy and I plan to change it in the future.

Member

nestal commented Jul 7, 2012

Currently grive is too stupid that it read the whole file to memory. In your case it just allocate 2G or memory and load the file to it. It is quite crazy and I plan to change it in the future.

@nestal

This comment has been minimized.

Show comment Hide comment
@nestal

nestal Jul 26, 2012

Member

See also #88

Member

nestal commented Jul 26, 2012

See also #88

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment