Make S3ObjectStream's config accessible externally.

This commit is contained in:
Jean-Philip Desjardins 2018-10-09 13:06:08 -04:00
parent f12b5d7f8b
commit eae1eceee1
2 changed files with 24 additions and 19 deletions

View File

@ -15,25 +15,21 @@
#define LOG_NAME "s3objectstream"
class CS3Config : public CSingleton<CS3Config>
CS3ObjectStream::CConfig::CConfig()
{
public:
CS3Config()
{
CAppConfig::GetInstance().RegisterPreferenceString(PREF_S3_OBJECTSTREAM_ACCESSKEYID, "");
CAppConfig::GetInstance().RegisterPreferenceString(PREF_S3_OBJECTSTREAM_SECRETACCESSKEY, "");
}
CAppConfig::GetInstance().RegisterPreferenceString(PREF_S3_OBJECTSTREAM_ACCESSKEYID, "");
CAppConfig::GetInstance().RegisterPreferenceString(PREF_S3_OBJECTSTREAM_SECRETACCESSKEY, "");
}
std::string GetAccessKeyId()
{
return CAppConfig::GetInstance().GetPreferenceString(PREF_S3_OBJECTSTREAM_ACCESSKEYID);
}
std::string CS3ObjectStream::CConfig::GetAccessKeyId()
{
return CAppConfig::GetInstance().GetPreferenceString(PREF_S3_OBJECTSTREAM_ACCESSKEYID);
}
std::string GetSecretAccessKey()
{
return CAppConfig::GetInstance().GetPreferenceString(PREF_S3_OBJECTSTREAM_SECRETACCESSKEY);
}
};
std::string CS3ObjectStream::CConfig::GetSecretAccessKey()
{
return CAppConfig::GetInstance().GetPreferenceString(PREF_S3_OBJECTSTREAM_SECRETACCESSKEY);
}
CS3ObjectStream::CS3ObjectStream(const char* bucketName, const char* objectName)
: m_bucketName(bucketName)
@ -77,7 +73,7 @@ uint64 CS3ObjectStream::Read(void* buffer, uint64 size)
if(!cachedReadSucceeded)
{
assert(size > 0);
CAmazonS3Client client(CS3Config::GetInstance().GetAccessKeyId(), CS3Config::GetInstance().GetSecretAccessKey(), m_bucketRegion);
CAmazonS3Client client(CConfig::GetInstance().GetAccessKeyId(), CConfig::GetInstance().GetSecretAccessKey(), m_bucketRegion);
GetObjectRequest request;
request.object = m_objectName;
request.bucket = m_bucketName;
@ -163,7 +159,7 @@ void CS3ObjectStream::GetObjectInfo()
{
//Obtain bucket region
{
CAmazonS3Client client(CS3Config::GetInstance().GetAccessKeyId(), CS3Config::GetInstance().GetSecretAccessKey());
CAmazonS3Client client(CConfig::GetInstance().GetAccessKeyId(), CConfig::GetInstance().GetSecretAccessKey());
GetBucketLocationRequest request;
request.bucket = m_bucketName;
@ -174,7 +170,7 @@ void CS3ObjectStream::GetObjectInfo()
//Obtain object info
{
CAmazonS3Client client(CS3Config::GetInstance().GetAccessKeyId(), CS3Config::GetInstance().GetSecretAccessKey(), m_bucketRegion);
CAmazonS3Client client(CConfig::GetInstance().GetAccessKeyId(), CConfig::GetInstance().GetSecretAccessKey(), m_bucketRegion);
HeadObjectRequest request;
request.bucket = m_bucketName;

View File

@ -1,11 +1,20 @@
#pragma once
#include "Singleton.h"
#include "Stream.h"
#include "boost_filesystem_def.h"
class CS3ObjectStream : public Framework::CStream
{
public:
class CConfig : public CSingleton<CConfig>
{
public:
CConfig();
std::string GetAccessKeyId();
std::string GetSecretAccessKey();
};
CS3ObjectStream(const char*, const char*);
uint64 Read(void*, uint64) override;