我正在开发一个应用程序,需要将文件从 Autodesk Construction Cloud 复制到 Azure 存储,
AZCopy
支持吗?
下面是 Autodesk Construction Cloud API 端点,我正在获取 oAuth 令牌并将其与我正在读取文件夹内容的请求一起传递
var contentsEndpoint = $"https://developer.api.autodesk.com/data/v1/projects/{projectId}/folders/{folderID}/contents";
var request = new HttpRequestMessage(HttpMethod.Get, contentsEndpoint);
request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", token);
var response = await _httpClient.SendAsync(request);
var responseString = await response.Content.ReadAsStringAsync();
JObject jsonObject = JObject.Parse(responseString);
JArray array2 = (JArray)jsonObject["data"];
foreach (var item in array2)
{
if (item["type"].ToString() == "items" && item["attributes"]["displayName"].ToString() == "signature.jpg")
{
//return file is present
}
}
我们希望使用 AZ Copy 将其移动到 Azure 存储。我知道我们可以从本地到 Azure 存储,或者从一个帐户到另一个帐户。但是它可以与 ACC 一起使用吗?
我们可以使用 AZCopy 将文件从 Autodesk Construction Cloud 传输到 Azure 存储吗?
根据这个文件,
AzCopy 是
CLI
工具,专门用于在 Azure 存储帐户之间传输数据,包括 Blob 存储、文件存储和 on-premise
到 Azure 存储。
但是,AzCopy 本身并不支持第三方 API 或 Autodesk Construction Cloud (ACC) 等平台。
我建议您可以将数据从 Autodesk Construction Cloud (ACC) 转换为流,并使用 C# 使用
Azure blob Storage SDK
进行上传。
代码:
var fileDownloadUrl = "Your file URL from the Autodesk Construction Cloud (ACC)";
using var fileResponse = await httpClient.GetAsync(fileDownloadUrl);
fileResponse.EnsureSuccessStatusCode();
using var fileStream = await fileResponse.Content.ReadAsStreamAsync();
string fileName = "signature.jpg"; // The name of the file to transfer
string azureBlobConnectionString = "your-azure-blob-connection-string";
string containerName = "your-container-name";
// Upload the file to Azure Blob Storage
var blobClient = new BlobClient(azureBlobConnectionString, containerName, fileName);
await blobClient.UploadAsync(fileStream, true);