Mercurial > hg > orthanc-object-storage
changeset 121:addccb7ad900 2.3.0
rollback e39aa88ec20e commited in wrong branch
author | Alain Mazy <am@osimis.io> |
---|---|
date | Tue, 21 Nov 2023 09:50:24 +0100 |
parents | e39aa88ec20e |
children | df0b6998fd27 734c8c01de95 |
files | Aws/AwsS3StoragePlugin.cpp Common/StoragePlugin.cpp NEWS |
diffstat | 3 files changed, 9 insertions(+), 117 deletions(-) [+] |
line wrap: on
line diff
--- a/Aws/AwsS3StoragePlugin.cpp Mon Nov 20 17:03:08 2023 +0100 +++ b/Aws/AwsS3StoragePlugin.cpp Tue Nov 21 09:50:24 2023 +0100 @@ -17,7 +17,6 @@ **/ #include "AwsS3StoragePlugin.h" -#include <Logging.h> #include <aws/core/Aws.h> #include <aws/s3/S3Client.h> @@ -27,9 +26,6 @@ #include <aws/s3/model/DeleteObjectRequest.h> #include <aws/core/auth/AWSCredentialsProvider.h> #include <aws/core/utils/HashingUtils.h> -#include <aws/core/utils/logging/DefaultLogSystem.h> -#include <aws/core/utils/logging/DefaultCRTLogSystem.h> -#include <aws/core/utils/logging/AWSLogging.h> #include <aws/core/utils/memory/stl/AWSStreamFwd.h> #include <aws/core/utils/memory/stl/AWSStringStream.h> #include <aws/core/utils/memory/AWSMemory.h> @@ -37,7 +33,6 @@ #include <aws/core/utils/StringUtils.h> #include <aws/transfer/TransferManager.h> #include <aws/crt/Api.h> -#include <iostream> #include <fstream> #include <boost/lexical_cast.hpp> @@ -383,85 +378,6 @@ static std::unique_ptr<Aws::Crt::ApiHandle> api_; static std::unique_ptr<Aws::SDKOptions> sdkOptions_; -#include <stdarg.h> - -class AwsOrthancLogger : public Aws::Utils::Logging::LogSystemInterface -{ -public: - virtual ~AwsOrthancLogger() {} - - /** - * Gets the currently configured log level for this logger. - */ - virtual Aws::Utils::Logging::LogLevel GetLogLevel() const - { - return Aws::Utils::Logging::LogLevel::Trace; - } - /** - * Does a printf style output to the output stream. Don't use this, it's unsafe. See LogStream - */ - virtual void Log(Aws::Utils::Logging::LogLevel logLevel, const char* tag, const char* formatStr, ...) - { - Aws::StringStream ss; - - va_list args; - va_start(args, formatStr); - - va_list tmp_args; //unfortunately you cannot consume a va_list twice - va_copy(tmp_args, args); //so we have to copy it - #ifdef _WIN32 - const int requiredLength = _vscprintf(formatStr, tmp_args) + 1; - #else - const int requiredLength = vsnprintf(nullptr, 0, formatStr, tmp_args) + 1; - #endif - va_end(tmp_args); - - char outputBuff[requiredLength]; - #ifdef _WIN32 - vsnprintf_s(outputBuff, requiredLength, _TRUNCATE, formatStr, args); - #else - vsnprintf(outputBuff, requiredLength, formatStr, args); - #endif // _WIN32 - - if (logLevel == Aws::Utils::Logging::LogLevel::Debug || logLevel == Aws::Utils::Logging::LogLevel::Trace) - { - LOG(INFO) << reinterpret_cast<const char*>(&outputBuff[0]); - } - else if (logLevel == Aws::Utils::Logging::LogLevel::Warn) - { - LOG(WARNING) << reinterpret_cast<const char*>(&outputBuff[0]); - } - else - { - LOG(ERROR) << reinterpret_cast<const char*>(&outputBuff[0]); - } - - va_end(args); - } - /** - * Writes the stream to the output stream. - */ - virtual void LogStream(Aws::Utils::Logging::LogLevel logLevel, const char* tag, const Aws::OStringStream &messageStream) - { - if (logLevel == Aws::Utils::Logging::LogLevel::Debug || logLevel == Aws::Utils::Logging::LogLevel::Trace) - { - LOG(INFO) << tag << messageStream.str(); - } - else if (logLevel == Aws::Utils::Logging::LogLevel::Warn) - { - LOG(WARNING) << tag << messageStream.str(); - } - else - { - LOG(ERROR) << tag << messageStream.str(); - } - - } - /** - * Writes any buffered messages to the underlying device if the logger supports buffering. - */ - virtual void Flush() {} -}; IStorage* AwsS3StoragePluginFactory::CreateStorage(const std::string& nameForLogs, const OrthancPlugins::OrthancConfiguration& orthancConfig) { @@ -470,6 +386,14 @@ throw Orthanc::OrthancException(Orthanc::ErrorCode_BadSequenceOfCalls, "Cannot initialize twice"); } + api_.reset(new Aws::Crt::ApiHandle); + + sdkOptions_.reset(new Aws::SDKOptions); + sdkOptions_->cryptoOptions.initAndCleanupOpenSSL = false; // Done by the Orthanc framework + sdkOptions_->httpOptions.initAndCleanupCurl = false; // Done by the Orthanc framework + + Aws::InitAPI(*sdkOptions_); + bool enableLegacyStorageStructure; bool storageContainsUnknownFiles; @@ -508,26 +432,8 @@ const unsigned int connectTimeout = pluginSection.GetUnsignedIntegerValue("ConnectTimeout", 30); const unsigned int requestTimeout = pluginSection.GetUnsignedIntegerValue("RequestTimeout", 1200); const bool virtualAddressing = pluginSection.GetBooleanValue("VirtualAddressing", true); - const bool enableAwsSdkLogs = pluginSection.GetBooleanValue("EnableAwsSdkLogs", false); const std::string caFile = orthancConfig.GetStringValue("HttpsCACertificates", ""); - - - api_.reset(new Aws::Crt::ApiHandle); - - sdkOptions_.reset(new Aws::SDKOptions); - sdkOptions_->cryptoOptions.initAndCleanupOpenSSL = false; // Done by the Orthanc framework - sdkOptions_->httpOptions.initAndCleanupCurl = false; // Done by the Orthanc framework - - if (enableAwsSdkLogs) - { - // Set up logging - Aws::Utils::Logging::InitializeAWSLogging(Aws::MakeShared<AwsOrthancLogger>(ALLOCATION_TAG)); - // strangely, this seems to disable logging !!!! sdkOptions_->loggingOptions.logLevel = Aws::Utils::Logging::LogLevel::Trace; - } - - Aws::InitAPI(*sdkOptions_); - - + try { Aws::Client::ClientConfiguration configuration;
--- a/Common/StoragePlugin.cpp Mon Nov 20 17:03:08 2023 +0100 +++ b/Common/StoragePlugin.cpp Tue Nov 21 09:50:24 2023 +0100 @@ -88,7 +88,6 @@ { try { - Orthanc::Toolbox::ElapsedTimer timer; OrthancPlugins::LogInfo(primaryStorage->GetNameForLogs() + ": creating attachment " + std::string(uuid) + " of type " + boost::lexical_cast<std::string>(type)); std::unique_ptr<IStorage::IWriter> writer(primaryStorage->GetWriterForObject(uuid, type, cryptoEnabled)); @@ -112,7 +111,6 @@ { writer->Write(reinterpret_cast<const char*>(content), size); } - OrthancPlugins::LogInfo(primaryStorage->GetNameForLogs() + ": created attachment " + std::string(uuid) + " (" + timer.GetHumanTransferSpeed(true, size) + ")"); } catch (StoragePluginException& ex) { @@ -135,13 +133,11 @@ try { - Orthanc::Toolbox::ElapsedTimer timer; OrthancPlugins::LogInfo(storage->GetNameForLogs() + ": reading range of attachment " + std::string(uuid) + " of type " + boost::lexical_cast<std::string>(type)); std::unique_ptr<IStorage::IReader> reader(storage->GetReaderForObject(uuid, type, cryptoEnabled)); reader->ReadRange(reinterpret_cast<char*>(target->data), target->size, rangeStart); - OrthancPlugins::LogInfo(storage->GetNameForLogs() + ": read range of attachment " + std::string(uuid) + " (" + timer.GetHumanTransferSpeed(true, target->size) + ")"); return OrthancPluginErrorCode_Success; } catch (StoragePluginException& ex) @@ -185,7 +181,6 @@ { try { - Orthanc::Toolbox::ElapsedTimer timer; OrthancPlugins::LogInfo(storage->GetNameForLogs() + ": reading whole attachment " + std::string(uuid) + " of type " + boost::lexical_cast<std::string>(type)); std::unique_ptr<IStorage::IReader> reader(storage->GetReaderForObject(uuid, type, cryptoEnabled)); @@ -232,8 +227,6 @@ { reader->ReadWhole(reinterpret_cast<char*>(target->data), fileSize); } - - OrthancPlugins::LogInfo(storage->GetNameForLogs() + ": read whole attachment " + std::string(uuid) + " (" + timer.GetHumanTransferSpeed(true, fileSize) + ")"); } catch (StoragePluginException& ex) {
--- a/NEWS Mon Nov 20 17:03:08 2023 +0100 +++ b/NEWS Tue Nov 21 09:50:24 2023 +0100 @@ -1,10 +1,3 @@ -Pending changes in the mainline -=============================== - -* AWS plugin: - * New configuration "EnableAwsSdkLogs" to include AWS SDK logs in Orthanc logs. -* Now displaying size, duration and transfer speed for each read/write operation. - 2023-10-17 - v 2.3.0 ====================