[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-09-04 UTC."],[[["\u003cp\u003eThis document provides access to various versions of the C++ storage authentication example, ranging from version 2.11.0 up to the latest release candidate 2.37.0-rc.\u003c/p\u003e\n"],["\u003cp\u003eIt explains how to override the default authentication configuration using \u003ccode\u003egoogle::cloud::UnifiedCredentialsOption\u003c/code\u003e, allowing for explicit loading of service account key files.\u003c/p\u003e\n"],["\u003cp\u003eThe provided code sample illustrates how to use a service account key file for authentication, including loading credentials and setting them in the \u003ccode\u003egoogle::cloud::Options\u003c/code\u003e for the storage client.\u003c/p\u003e\n"],["\u003cp\u003eIt offers a link to the guide on best practices for managing service account keys, as well as another link to the Authentication Components documentation for more details on factory functions that can be used to create \u003ccode\u003egoogle::cloud::Credentials\u003c/code\u003e objects.\u003c/p\u003e\n"]]],[],null,["Version 2.17.0keyboard_arrow_down\n\n- [2.42.0-rc (latest)](/cpp/docs/reference/storage/latest/storage-auth-example)\n- [2.41.0](/cpp/docs/reference/storage/2.41.0/storage-auth-example)\n- [2.40.0](/cpp/docs/reference/storage/2.40.0/storage-auth-example)\n- [2.39.0](/cpp/docs/reference/storage/2.39.0/storage-auth-example)\n- [2.38.0](/cpp/docs/reference/storage/2.38.0/storage-auth-example)\n- [2.37.0](/cpp/docs/reference/storage/2.37.0/storage-auth-example)\n- [2.36.0](/cpp/docs/reference/storage/2.36.0/storage-auth-example)\n- [2.35.0](/cpp/docs/reference/storage/2.35.0/storage-auth-example)\n- [2.34.0](/cpp/docs/reference/storage/2.34.0/storage-auth-example)\n- [2.33.0](/cpp/docs/reference/storage/2.33.0/storage-auth-example)\n- [2.32.0](/cpp/docs/reference/storage/2.32.0/storage-auth-example)\n- [2.31.0](/cpp/docs/reference/storage/2.31.0/storage-auth-example)\n- [2.30.0](/cpp/docs/reference/storage/2.30.0/storage-auth-example)\n- [2.29.0](/cpp/docs/reference/storage/2.29.0/storage-auth-example)\n- [2.28.0](/cpp/docs/reference/storage/2.28.0/storage-auth-example)\n- [2.27.0](/cpp/docs/reference/storage/2.27.0/storage-auth-example)\n- [2.26.0](/cpp/docs/reference/storage/2.26.0/storage-auth-example)\n- [2.25.1](/cpp/docs/reference/storage/2.25.1/storage-auth-example)\n- [2.24.0](/cpp/docs/reference/storage/2.24.0/storage-auth-example)\n- [2.23.0](/cpp/docs/reference/storage/2.23.0/storage-auth-example)\n- [2.22.1](/cpp/docs/reference/storage/2.22.1/storage-auth-example)\n- [2.21.0](/cpp/docs/reference/storage/2.21.0/storage-auth-example)\n- [2.20.0](/cpp/docs/reference/storage/2.20.0/storage-auth-example)\n- [2.19.0](/cpp/docs/reference/storage/2.19.0/storage-auth-example)\n- [2.18.0](/cpp/docs/reference/storage/2.18.0/storage-auth-example)\n- [2.17.0](/cpp/docs/reference/storage/2.17.0/storage-auth-example)\n- [2.16.0](/cpp/docs/reference/storage/2.16.0/storage-auth-example)\n- [2.15.1](/cpp/docs/reference/storage/2.15.1/storage-auth-example)\n- [2.14.0](/cpp/docs/reference/storage/2.14.0/storage-auth-example)\n- [2.13.0](/cpp/docs/reference/storage/2.13.0/storage-auth-example)\n- [2.12.0](/cpp/docs/reference/storage/2.12.0/storage-auth-example)\n- [2.11.0](/cpp/docs/reference/storage/2.11.0/storage-auth-example) \n\nOverride the authentication configuration\n=========================================\n\nYou can override this default using [`google::cloud::UnifiedCredentialsOption`](https://cloud.google.com/cpp/docs/reference/common/latest/structgoogle_1_1cloud_1_1UnifiedCredentialsOption.html). The following example shows how to explicitly load a service account key file. \n\n namespace gcs = ::google::cloud::storage;\n [](std::string const& filename, std::string const& bucket_name,\n std::string const& object_name) {\n auto is = std::ifstream(filename);\n is.exceptions(std::ios::badbit);\n auto json_string =\n std::string(std::istreambuf_iterator\u003cchar\u003e(is.rdbuf()), {});\n auto credentials =\n google::cloud::MakeServiceAccountCredentials(json_string);\n auto client = gcs::Client(\n google::cloud::Options{}.set\u003cgoogle::cloud::UnifiedCredentialsOption\u003e(\n credentials));\n PerformSomeOperations(client, bucket_name, object_name);\n }\n\nKeep in mind that we chose this as an example because it is relatively easy to understand. Consult the [Best practices for managing service account keys](https://cloud.google.com/iam/docs/best-practices-for-managing-service-account-keys) guide for more details.\n\n###### See Also\n\n[Authentication Components](https://cloud.google.com/cpp/docs/reference/common/latest/group__guac.html) - for more information on the factory functions to create [`google::cloud::Credentials`](https://cloud.google.com/cpp/docs/reference/common/latest/classgoogle_1_1cloud_1_1Credentials.html) objects."]]