From 198ae544001411005152bbb748ff848f357fb9e6 Mon Sep 17 00:00:00 2001 From: Mahmood - Zer0xFF <5013823+Zer0xFF@users.noreply.github.com> Date: Thu, 12 May 2022 15:07:36 +0100 Subject: [PATCH 1/3] load r2 account id when available --- Source/s3stream/S3ObjectStream.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Source/s3stream/S3ObjectStream.cpp b/Source/s3stream/S3ObjectStream.cpp index 0b000d562f..e22488be40 100644 --- a/Source/s3stream/S3ObjectStream.cpp +++ b/Source/s3stream/S3ObjectStream.cpp @@ -9,6 +9,7 @@ #include "StdStreamUtils.h" #include "Log.h" +#define PREF_R2_OBJECTSTREAM_ACCOUNTKEYID "r2.objectstream.accountkeyid" #define PREF_S3_OBJECTSTREAM_ACCESSKEYID "s3.objectstream.accesskeyid" #define PREF_S3_OBJECTSTREAM_SECRETACCESSKEY "s3.objectstream.secretaccesskey" #define CACHE_PATH "Play Data Files/s3objectstream_cache" @@ -21,6 +22,7 @@ CS3ObjectStream::CConfig::CConfig() { CAppConfig::GetInstance().RegisterPreferenceString(PREF_S3_OBJECTSTREAM_ACCESSKEYID, ""); CAppConfig::GetInstance().RegisterPreferenceString(PREF_S3_OBJECTSTREAM_SECRETACCESSKEY, ""); + CAppConfig::GetInstance().RegisterPreferenceString(PREF_R2_OBJECTSTREAM_ACCOUNTKEYID, ""); } CAmazonCredentials CS3ObjectStream::CConfig::GetCredentials() @@ -28,6 +30,7 @@ CAmazonCredentials CS3ObjectStream::CConfig::GetCredentials() CAmazonCredentials credentials; credentials.accessKeyId = CAppConfig::GetInstance().GetPreferenceString(PREF_S3_OBJECTSTREAM_ACCESSKEYID); credentials.secretAccessKey = CAppConfig::GetInstance().GetPreferenceString(PREF_S3_OBJECTSTREAM_SECRETACCESSKEY); + credentials.accountKeyId = CAppConfig::GetInstance().GetPreferenceString(PREF_R2_OBJECTSTREAM_ACCOUNTKEYID); return credentials; } From bfcfeb928ad049c291b5f6d820d8574e2c65a142 Mon Sep 17 00:00:00 2001 From: Mahmood - Zer0xFF <5013823+Zer0xFF@users.noreply.github.com> Date: Thu, 12 May 2022 15:49:28 +0100 Subject: [PATCH 2/3] update CAmazonCredentials to CAmazonConfigs --- Source/s3stream/S3ObjectStream.cpp | 18 +++++++++--------- Source/s3stream/S3ObjectStream.h | 2 +- Source/ui_qt/QBootablesView.cpp | 2 +- Source/ui_qt/S3FileBrowser.cpp | 4 ++-- Source/ui_shared/AmazonS3Utils.cpp | 2 +- Source/ui_shared/AmazonS3Utils.h | 2 +- 6 files changed, 15 insertions(+), 15 deletions(-) diff --git a/Source/s3stream/S3ObjectStream.cpp b/Source/s3stream/S3ObjectStream.cpp index e22488be40..e8bf39cdee 100644 --- a/Source/s3stream/S3ObjectStream.cpp +++ b/Source/s3stream/S3ObjectStream.cpp @@ -25,13 +25,13 @@ CS3ObjectStream::CConfig::CConfig() CAppConfig::GetInstance().RegisterPreferenceString(PREF_R2_OBJECTSTREAM_ACCOUNTKEYID, ""); } -CAmazonCredentials CS3ObjectStream::CConfig::GetCredentials() +CAmazonConfigs CS3ObjectStream::CConfig::GetConfigs() { - CAmazonCredentials credentials; - credentials.accessKeyId = CAppConfig::GetInstance().GetPreferenceString(PREF_S3_OBJECTSTREAM_ACCESSKEYID); - credentials.secretAccessKey = CAppConfig::GetInstance().GetPreferenceString(PREF_S3_OBJECTSTREAM_SECRETACCESSKEY); - credentials.accountKeyId = CAppConfig::GetInstance().GetPreferenceString(PREF_R2_OBJECTSTREAM_ACCOUNTKEYID); - return credentials; + CAmazonConfigs configs; + configs.accessKeyId = CAppConfig::GetInstance().GetPreferenceString(PREF_S3_OBJECTSTREAM_ACCESSKEYID); + configs.secretAccessKey = CAppConfig::GetInstance().GetPreferenceString(PREF_S3_OBJECTSTREAM_SECRETACCESSKEY); + configs.accountKeyId = CAppConfig::GetInstance().GetPreferenceString(PREF_R2_OBJECTSTREAM_ACCOUNTKEYID); + return configs; } CS3ObjectStream::CS3ObjectStream(const char* bucketName, const char* objectKey) @@ -136,7 +136,7 @@ void CS3ObjectStream::GetObjectInfo() { //Obtain bucket region { - CAmazonS3Client client(CConfig::GetInstance().GetCredentials()); + CAmazonS3Client client(CConfig::GetInstance().GetConfigs()); GetBucketLocationRequest request; request.bucket = m_bucketName; @@ -147,7 +147,7 @@ void CS3ObjectStream::GetObjectInfo() //Obtain object info { - CAmazonS3Client client(CConfig::GetInstance().GetCredentials(), m_bucketRegion); + CAmazonS3Client client(CConfig::GetInstance().GetConfigs(), m_bucketRegion); HeadObjectRequest request; request.bucket = m_bucketName; @@ -196,7 +196,7 @@ void CS3ObjectStream::SyncBuffer() if(!cachedReadSucceeded) { assert(size > 0); - CAmazonS3Client client(CConfig::GetInstance().GetCredentials(), m_bucketRegion); + CAmazonS3Client client(CConfig::GetInstance().GetConfigs(), m_bucketRegion); GetObjectRequest request; request.key = m_objectKey; request.bucket = m_bucketName; diff --git a/Source/s3stream/S3ObjectStream.h b/Source/s3stream/S3ObjectStream.h index cc0f61e1fd..8eb038cdea 100644 --- a/Source/s3stream/S3ObjectStream.h +++ b/Source/s3stream/S3ObjectStream.h @@ -13,7 +13,7 @@ class CS3ObjectStream : public Framework::CStream { public: CConfig(); - CAmazonCredentials GetCredentials(); + CAmazonConfigs GetConfigs(); }; CS3ObjectStream(const char*, const char*); diff --git a/Source/ui_qt/QBootablesView.cpp b/Source/ui_qt/QBootablesView.cpp index dac665d14f..f71bc7ef79 100644 --- a/Source/ui_qt/QBootablesView.cpp +++ b/Source/ui_qt/QBootablesView.cpp @@ -246,7 +246,7 @@ void QBootablesView::on_awsS3Button_clicked() ToggleInterface(false); auto getListFuture = std::async(std::launch::async, [this, bucketName]() { - auto credentials = CS3ObjectStream::CConfig::GetInstance().GetCredentials(); + auto credentials = CS3ObjectStream::CConfig::GetInstance().GetConfigs(); AsyncUpdateStatus("Requesting S3 Bucket Content."); auto result = AmazonS3Utils::GetListObjects(credentials, bucketName); auto size = result.objects.size(); diff --git a/Source/ui_qt/S3FileBrowser.cpp b/Source/ui_qt/S3FileBrowser.cpp index 3e45592a92..6569f7a7e0 100644 --- a/Source/ui_qt/S3FileBrowser.cpp +++ b/Source/ui_qt/S3FileBrowser.cpp @@ -33,7 +33,7 @@ S3FileBrowser::~S3FileBrowser() bool S3FileBrowser::IsAvailable() { - return CS3ObjectStream::CConfig::GetInstance().GetCredentials().IsValid(); + return CS3ObjectStream::CConfig::GetInstance().GetConfigs().IsValid(); } fs::path S3FileBrowser::GetSelectedPath() const @@ -96,7 +96,7 @@ void S3FileBrowser::launchUpdate() updateOkButtonState(); auto getListFuture = std::async([bucketName = m_lastUpdateBucketName.toStdString()]() { - auto credentials = CS3ObjectStream::CConfig::GetInstance().GetCredentials(); + auto credentials = CS3ObjectStream::CConfig::GetInstance().GetConfigs(); return AmazonS3Utils::GetListObjects(credentials, bucketName); }); m_continuationChecker->GetContinuationManager().Register(std::move(getListFuture), diff --git a/Source/ui_shared/AmazonS3Utils.cpp b/Source/ui_shared/AmazonS3Utils.cpp index ccbb436282..454cdd451f 100644 --- a/Source/ui_shared/AmazonS3Utils.cpp +++ b/Source/ui_shared/AmazonS3Utils.cpp @@ -1,6 +1,6 @@ #include "AmazonS3Utils.h" -ListObjectsResult AmazonS3Utils::GetListObjects(const CAmazonCredentials& credentials, std::string bucketName) +ListObjectsResult AmazonS3Utils::GetListObjects(const CAmazonConfigs& credentials, std::string bucketName) { std::string bucketRegion; diff --git a/Source/ui_shared/AmazonS3Utils.h b/Source/ui_shared/AmazonS3Utils.h index fdc6669e6b..f1de26a8e5 100644 --- a/Source/ui_shared/AmazonS3Utils.h +++ b/Source/ui_shared/AmazonS3Utils.h @@ -5,5 +5,5 @@ namespace AmazonS3Utils { - ListObjectsResult GetListObjects(const CAmazonCredentials&, std::string); + ListObjectsResult GetListObjects(const CAmazonConfigs&, std::string); }; From 7517bf8fba0688e90705bb63e0e2bafe8b967a2d Mon Sep 17 00:00:00 2001 From: Mahmood - Zer0xFF <5013823+Zer0xFF@users.noreply.github.com> Date: Thu, 12 May 2022 16:04:03 +0100 Subject: [PATCH 3/3] load provider info --- Source/s3stream/S3ObjectStream.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Source/s3stream/S3ObjectStream.cpp b/Source/s3stream/S3ObjectStream.cpp index e8bf39cdee..da3cd8c0fc 100644 --- a/Source/s3stream/S3ObjectStream.cpp +++ b/Source/s3stream/S3ObjectStream.cpp @@ -9,6 +9,7 @@ #include "StdStreamUtils.h" #include "Log.h" +#define PREF_S3_OBJECTSTREAM_PROVIDER "s3.objectstream.provider" #define PREF_R2_OBJECTSTREAM_ACCOUNTKEYID "r2.objectstream.accountkeyid" #define PREF_S3_OBJECTSTREAM_ACCESSKEYID "s3.objectstream.accesskeyid" #define PREF_S3_OBJECTSTREAM_SECRETACCESSKEY "s3.objectstream.secretaccesskey" @@ -23,6 +24,7 @@ CS3ObjectStream::CConfig::CConfig() CAppConfig::GetInstance().RegisterPreferenceString(PREF_S3_OBJECTSTREAM_ACCESSKEYID, ""); CAppConfig::GetInstance().RegisterPreferenceString(PREF_S3_OBJECTSTREAM_SECRETACCESSKEY, ""); CAppConfig::GetInstance().RegisterPreferenceString(PREF_R2_OBJECTSTREAM_ACCOUNTKEYID, ""); + CAppConfig::GetInstance().RegisterPreferenceInteger(PREF_S3_OBJECTSTREAM_PROVIDER, CAmazonConfigs::AWS_S3); } CAmazonConfigs CS3ObjectStream::CConfig::GetConfigs() @@ -31,6 +33,7 @@ CAmazonConfigs CS3ObjectStream::CConfig::GetConfigs() configs.accessKeyId = CAppConfig::GetInstance().GetPreferenceString(PREF_S3_OBJECTSTREAM_ACCESSKEYID); configs.secretAccessKey = CAppConfig::GetInstance().GetPreferenceString(PREF_S3_OBJECTSTREAM_SECRETACCESSKEY); configs.accountKeyId = CAppConfig::GetInstance().GetPreferenceString(PREF_R2_OBJECTSTREAM_ACCOUNTKEYID); + configs.m_provider = static_cast(CAppConfig::GetInstance().GetPreferenceInteger(PREF_S3_OBJECTSTREAM_PROVIDER)); return configs; }