minio / minio-cpp

MinIO C++ Client SDK for Amazon S3 Compatible Cloud Storage
https://minio-cpp.min.io/
Apache License 2.0
127 stars 53 forks source link

Where is the header, client.h? #90

Closed garyyang6 closed 1 year ago

garyyang6 commented 1 year ago

I use commands as follows build minio-cpp:

git clone https://github.com/minio/minio-cpp cd minio-cpp wget --quiet -O vcpkg-master.zip https://github.com/microsoft/vcpkg/archive/refs/heads/master.zip unzip -qq vcpkg-master.zip ./vcpkg-master/bootstrap-vcpkg.sh ./vcpkg-master/vcpkg integrate install cmake -B ./build -DCMAKE_BUILD_TYPE=Debug -DCMAKE_TOOLCHAIN_FILE=./vcpkg-master/scripts/buildsystems/vcpkg.cmake cmake --build ./build --config Debug

I got "DownloadObject.cc:1:10: fatal error: client.h: No such file or directory".

CMakeLists.txt

cmake_minimum_required(VERSION 3.27)
set(CMAKE_CXX_STANDARD 11)

find_package(PkgConfig REQUIRED)
find_package(CURL REQUIRED)
find_package(OpenSSL REQUIRED)

SET(requiredlibs)
list(APPEND requiredlibs stdc++fs)
list(APPEND requiredlibs CURL::libcurl)
list(APPEND requiredlibs OpenSSL::SSL OpenSSL::Crypto)

SET(S3_LIBS ${requiredlibs})

project(DownloadObject LANGUAGES CXX)
ADD_EXECUTABLE(${PROJECT_NAME} "DownloadObject.cc")
TARGET_LINK_LIBRARIES(${PROJECT_NAME} miniocpp ${S3_LIBS})

DownloadObject.cc

#include "client.h"

int main(int argc, char* argv[]) {
  // Create S3 base URL.
  minio::s3::BaseUrl base_url("minio-api-endpoint");

  // Create credential provider.
  minio::creds::StaticProvider provider(
      "##########", "####################");

  // Create S3 client.
  minio::s3::Client client(base_url, &provider);

  // Create download object arguments.
  minio::s3::DownloadObjectArgs args;
  args.bucket = "minio-bucket";
  args.object = "test.py";
  args.filename = "downloaed-test.py";

  // Call download object.
  minio::s3::DownloadObjectResponse resp = client.DownloadObject(args);

  // Handle response.
  if (resp) {
    std::cout << "test.py is successfully downloaded to my-object.csv"
              << std::endl;
  } else {
    std::cout << "unable to download object; " << resp.Error().String()
              << std::endl;
  }

  return 0;
}
cmake -B ./build -DCMAKE_BUILD_TYPE=Debug -DCMAKE_TOOLCHAIN_FILE=~/work-on-api/install-minio-cpp/minio-cpp/vcpkg-master/scripts/buildsystems/vcpkg.cmake

cmake --build ./build --config Debug

DownloadObject.cc:1:10: fatal error: client.h: No such file or directory

balamurugana commented 1 year ago

How did you install minio-cpp using vcpkg?

garyyang6 commented 1 year ago

I use commands as follows build minio-cpp:

git clone https://github.com/minio/minio-cpp cd minio-cpp wget --quiet -O vcpkg-master.zip https://github.com/microsoft/vcpkg/archive/refs/heads/master.zip unzip -qq vcpkg-master.zip ./vcpkg-master/bootstrap-vcpkg.sh ./vcpkg-master/vcpkg integrate install cmake -B ./build -DCMAKE_BUILD_TYPE=Debug -DCMAKE_TOOLCHAIN_FILE=./vcpkg-master/scripts/buildsystems/vcpkg.cmake cmake --build ./build --config Debug

balamurugana commented 1 year ago

This doesn't install minio-cpp. Please refer vcpkg and cmake how to integrate minio-cpp or any available package.

garyyang6 commented 1 year ago

I also use the vcpkg installed minio-cpp.

sudo vcpkg install minio-cpp
Computing installation plan...
The following packages are already installed:
    minio-cpp:x64-linux -> 0.1.1#1

Then I use this command to build.

cmake -B ./build -DCMAKE_BUILD_TYPE=Debug -DCMAKE_TOOLCHAIN_FILE=/opt/vcpkg/scripts/buildsystems/vcpkg.cmake

cmake --build ./build --config Debug

DownloadObject.cc:1:10: fatal error: client.h: No such file or directory

Note: vcpkg is installed at /opt/vcpkg.

It seems like I did not install minio-cpp properly. Please share with me the URLs. Thank you.