私の 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);
}