我们正在尝试将Dynamics 365 FO与Google云存储集成。发生的情况是,没有内置的API将其连接到Google Cloud。
我们正在尝试在C#中使用Google Cloud API,然后在D365fo中调用c#。我被困在身份验证步骤中。我已经创建了一个类库项目,并添加了nuget包Google.Cloud.Storage.V1。我应该如何连接到OAuth2.0以获取访问令牌以访问Google Cloud?
我们如何使用C#将Google云端中的存储桶信息下载到本地文件夹?
答案 0 :(得分:1)
安装并配置了SDK后,您可以通过以下方式在工作区的Google云上进行身份验证:
创建具有项目所有者权限的服务帐户
将其.json密钥下载到您的工作区
See this link了解详细步骤。
在同一链接中有一个small script that verifies the authentication to your Google Cloud project。
在该代码中注意这一行:
var credential = GoogleCredential.GetApplicationDefault();
此行获取保存在您的环境路径(之前保存的密钥路径)上的凭据,并使用它来对项目进行身份验证。
如果您执行了此操作,则应该能够对您的项目进行身份验证并运行Google Cloud API。
关于您的问题,要列出存储桶中的文件,您可以在API文档中查看this example,以及其他示例。
答案 1 :(得分:0)
string _projectId = "YOUR-PROJECT-ID-GCP"; //ProjectID also present in the json file
GoogleCredential _credential = GoogleCredential.FromFile("credential-cloud-file-123418c9e06c.json");
public IEnumerable<Google.Apis.Storage.v1.Data.Object> ListFiles(string bucketName)
{
var storage = StorageClient.Create(_credential);
var storageObjects = storage.ListObjects(bucketName);
Console.WriteLine($"Files in bucket {bucketName}:");
foreach (var storageObject in storageObjects)
{
Console.WriteLine(storageObject.Name);
}
return storageObjects;
}
您从谷歌云门户获取凭证 json 文件,您在该门户中在项目下创建了一个存储桶..