주위를 둘러 보았고 REST를 사용해야한다는 몇 가지 대답을 발견했습니다. 하지만 Qt/C++에서 어떻게 통합 할 수 있습니까? 누구나이 코드의 몇 가지 예 또는 몇 줄의 코드를 연결할 수 있습니까? 정말 고맙겠 어!C++을 사용하여 Azure blob 저장소에 액세스
0
A
답변
1
this question을 확인하십시오. 그것은 당신이 물어 보는 것과 Azure 서비스에 접근하기 위해 통합 할 수있는 자유롭게 사용할 수있는 몇 가지 C++ 라이브러리에 대해 설명합니다.
2
나는 그것을 성취하는데 많은 시간이 걸렸다. 가장 까다로운 것은 기본 키를 디코딩해야한다는 것입니다. this question의 도움으로 OpenSSL을 사용하기로 결정했으며 다음 코드를 작성했습니다.
QString datastring = "GET\n\n\n\n\n\n\n\n\n\n\n\nx-ms-date:" + date + "\nx-ms-version:2009-09-19\n/myStorage/\ncomp:list";
QByteArray ba = datastring.toUtf8();
unsigned char* signature = reinterpret_cast<unsigned char*>(ba.data());
QByteArray kba = QByteArray::fromBase64("theStorageAccountKey");
unsigned char* key = (unsigned char*) kba.data();
unsigned char result[EVP_MAX_MD_SIZE];
unsigned int result_len;
ENGINE_load_builtin_engines();
ENGINE_register_all_complete();
HMAC_CTX ctx;
HMAC_CTX_init(&ctx);
HMAC_Init_ex(&ctx, key, strlen((const char*)key), EVP_sha256(), NULL);
HMAC_Update(&ctx, signature, strlen((const char*)signature));
HMAC_Final(&ctx, result, &result_len);
HMAC_CTX_cleanup(&ctx);
QByteArray array = QByteArray::fromRawData((char*)result, result_len);
array = array.toBase64();
qDebug() << "signature hash" << array;
QString version = "2009-09-19";
//requesting the list of container to Windows Azure
QNetworkAccessManager* manager = new QNetworkAccessManager();
QNetworkRequest request;
request.setUrl(QUrl("http://myStorage.blob.core.windows.net/?comp=list"));
request.setRawHeader("Authorization","SharedKey myStorage:" + array);
request.setRawHeader("x-ms-date", date.toStdString().c_str());
request.setRawHeader("x-ms-version", version.toStdString().c_str());
QNetworkReply *reply = manager->get(request);
connect(reply, SIGNAL(readyRead()), this, SLOT(manageCloudReply()));
누군가에게 도움이되기를 바랍니다.
관련 문제
- 1. VB6 응용 프로그램에서 Azure Blob 저장소에 액세스
- 2. Azure Blob 저장소의 트랜잭션 액세스
- 3. 간단한 REST 'GET'을 통해 로컬 Azure blob 저장소에 액세스
- 4. Tinymce ImageManager가 Windows Azure Blob 저장소에 연결되었습니다.
- 5. Azure Blob 저장소에 blob 컨테이너를 만들 수 없습니다.
- 6. Javascript를 사용하여 Azure Blob 만들기
- 7. Windows Azure 웹 역할을 사용하여 Blob 저장소에 파일 업로드
- 8. C# 예제를 사용하여 Coldfusion을 사용하여 REST를 통해 Azure blob 저장소에 액세스
- 9. 로컬 저장소의 모든 파일을 Azure Blob 저장소에 업로드
- 10. 독립 실행 형 응용 프로그램에서 azure blob 저장소에 로깅
- 11. ClickOnce를 Azure Blob 저장소에 직접 게시 할 수 있습니까?
- 12. Azure Blob 용 JCloud
- 13. 파일을 Azure Blob 저장소에서 다운로드
- 14. 가상 BLOB 저장소에 VM 실제 경로 매핑
- 15. Lucene .NET Azure Blob 저장 및 IFilter
- 16. Silverlight의 Azure Blob 저장소 브라우저
- 17. 파일 시스템으로 Azure 저장소 BLOB에 액세스
- 18. jQuery로 Azure Blob 저장소의 JSON 데이터를 쿼리하십시오.
- 19. Telerik ASP.NET RadEditor 및 Azure Blob 저장소?
- 20. Azure 웹 역할을 사용하여 파일 압축을 풀고 Blob 저장소에 내용을 업로드하십시오.
- 21. 이름에 물음표가있는 파일에 Azure blob 참조
- 22. Azure Blob 저장소의 호스트 ASPNET 페이지?
- 23. Azure - BLOB 저장소의 기존 XML 파일 업데이트
- 24. WPF 응용 프로그램에서 Azure blob 데이터를 많이로드합니다.
- 25. C을 찾는 ++ 구현()`
- 26. Azure의 테이블 저장소에 Azure 웹 사이트에 액세스 할 수 있습니까?
- 27. XAP가 Azure Blob 저장소에있을 때 데이터베이스에 액세스하는 방법은 무엇입니까?
- 28. Azure BLOB 저장소의 ascx 파일 사용
- 29. Windows Azure 테이블 저장소에 저장할 필드 결정
- 30. Blob 저장소에 폴더를 업로드하는 방법은 무엇입니까?
http://stackoverflow.com/questions/8471810/accessing-azure-storage-tables-from-c-code/9476451#9476451 – chikuba