我想在我的 Qt 应用程序中获取托管在 Amazon S3 上的文件的文件大小。
下面的代码适用于非 S3 文件,但对于签名的 S3 链接,它会打印出来QVariant(Invalid)
似乎 Content-Length 不在 S3 HTTP 标头中……那么如何获取文件大小?
void MainWindow::requestFileSize(QString url)
{
QNetworkRequest req;
m_netmanager = new QNetworkAccessManager(this);
QUrl strict_url = QUrl::fromEncoded(url.toStdString().c_str(),QUrl::StrictMode);
req.setUrl(strict_url);
m_reply = m_netmanager->head(req);
connect(m_reply, SIGNAL(metaDataChanged()), this, SLOT(fileSize()));
}
void MainWindow::fileSize()
{
qDebug() << "Content Length: " << m_reply->header(QNetworkRequest::ContentLengthHeader);
}