Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

upload file to get HttpResponseTag 401 #83

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

upload file to get HttpResponseTag 401 #83

indian4646 opened this issue Jul 2, 2012 · 4 comments

Comments

@indian4646
Copy link

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
Copy link
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
Copy link
Author

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
Copy link
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
Copy link
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
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants