bool Dropbox::writeFile(QByteArray &data, QString remotename) { // this must be performed asyncronously and call made // to notifyWriteCompleted(QString remotename, QString message) when done // do we have a token ? QString token = appsettings->cvalue(context->athlete->cyclist, GC_DROPBOX_TOKEN, "").toString(); if (token == "") return false; // is the path set ? QString path = appsettings->cvalue(context->athlete->cyclist, GC_DROPBOX_FOLDER, "").toString(); if (path == "") return false; // lets connect and get basic info on the root directory QString url("https://content.dropboxapi.com/1/files_put/auto/" + path + "/" + remotename + "?overwrite=true&autorename=false"); // request using the bearer token QNetworkRequest request(url); request.setRawHeader("Authorization", (QString("Bearer %1").arg(token)).toLatin1()); // put the file QNetworkReply *reply = nam->put(request, data); // catch finished signal connect(reply, SIGNAL(finished()), this, SLOT(writeFileCompleted())); // remember mapReply(reply,remotename); return true; }
// read a file at location (relative to home) into passed array bool PolarFlow::readFile(QByteArray *data, QString remotename, QString remoteid) { printd("PolarFlow::readFile(%s)\n", remotename.toStdString().c_str()); // this must be performed asyncronously and call made // to notifyReadComplete(QByteArray &data, QString remotename, QString message) when done // do we have a token ? QString token = getSetting(GC_POLARFLOW_TOKEN, "").toString(); if (token == "") return false; // lets connect and get basic info on the root directory QString url = QString("%1/rest/files/download/%2") .arg(getSetting(GC_POLARFLOW_URL, "https://whats.todaysplan.com.au").toString()) .arg(remoteid); printd("url:%s\n", url.toStdString().c_str()); // request using the bearer token QNetworkRequest request(url); request.setRawHeader("Authorization", (QString("Bearer %1").arg(token)).toLatin1()); // put the file QNetworkReply *reply = nam->get(request); // remember mapReply(reply,remotename); buffers.insert(reply,data); // catch finished signal connect(reply, SIGNAL(finished()), this, SLOT(readFileCompleted())); connect(reply, SIGNAL(readyRead()), this, SLOT(readyRead())); return true; }
bool TrainingsTageBuch::writeFile(QByteArray &data, QString remotename, RideFile *ride) { Q_UNUSED(ride); printd("TrainingStageBuch::writeFile(%s)\n", remotename.toStdString().c_str()); QHttpMultiPart *body = new QHttpMultiPart(QHttpMultiPart::FormDataType); QHttpPart textPart; textPart.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("form-data; name=\"upload_submit\"")); textPart.setBody("hrm"); body->append(textPart); int limit = proMember ? 8 * 1024 * 1024 : 4 * 1024 * 1024; if(data.size() >= limit ){ return false; } QHttpPart filePart; filePart.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("application/octet-stream")); filePart.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("form-data; name=\"file\"; filename=\"gc-upload-ttb.pwx\"")); filePart.setBody(data); body->append(filePart); #if QT_VERSION > 0x050000 QUrlQuery urlquery; #else QUrl urlquery( TTB_URL + "/file/upload" ); #endif urlquery.addQueryItem( "view", "xml" ); urlquery.addQueryItem( "sso", sessionId ); #if QT_VERSION > 0x050000 QUrl url (TTB_URL + "/file/upload"); url.setQuery(urlquery.query()); QNetworkRequest request = QNetworkRequest(url); #else QNetworkRequest request = QNetworkRequest(urlquery); #endif request.setRawHeader( "Accept-Encoding", "identity" ); request.setRawHeader( "Accept", "application/xml" ); request.setRawHeader( "Accept-Charset", "utf-8" ); // this must be performed asyncronously and call made // to notifyWriteCompleted(QString remotename, QString message) when done reply = nam->post(request, body); // catch finished signal connect(reply, SIGNAL(finished()), this, SLOT(writeFileCompleted())); // remember mapReply(reply,remotename); return true; }
// read a file at location (relative to home) into passed array bool Dropbox::readFile(QByteArray *data, QString remotename, QString) { // this must be performed asyncronously and call made // to notifyReadComplete(QByteArray &data, QString remotename, QString message) when done // do we have a token ? QString token = getSetting(GC_DROPBOX_TOKEN, "").toString(); if (token == "") return false; // is the path set ? QString path = getSetting(GC_DROPBOX_FOLDER, "").toString(); if (path == "") return false; // lets connect and get basic info on the root directory QString url("https://content.dropboxapi.com/1/files/auto/" + path + "/" + remotename); // request using the bearer token QNetworkRequest request(url); request.setRawHeader("Authorization", (QString("Bearer %1").arg(token)).toLatin1()); // put the file QNetworkReply *reply = nam->get(request); // remember mapReply(reply,remotename); buffers.insert(reply,data); // catch finished signal connect(reply, SIGNAL(finished()), this, SLOT(readFileCompleted())); connect(reply, SIGNAL(readyRead()), this, SLOT(readyRead())); return true; }