我想使用.Net SDK删除中的一个特定文件
使用以下代码并返回错误“操作返回无效状态代码'BadRequest'”
var clientCredential =新ClientCredential(CLIENTID,CLIENTSECRET); ApplicationTokenProvider.LoginSilentAsync(DOMAINNAME,clientCredential).Result; _adlsFileSystemClient =新的_adlsFileSystemClient 变量fileDeleteResult =fileDeleteResult路径);
发布于 2017-08-23 12:03:09
我过去常常得到这个错误,我最终通过使用异步方法而不是同步方法来解决这个错误。
您还可能希望检查要传递给"Delete“函数的文件路径;它必须是完整路径,包括文件名+扩展名。有点像"/rootFolder/subFolder1/subFolder2/DeleteMe.txt"
试着做这样的事情:
private ServiceClientCredentials Authenticate(string _adlsDomain, string _adlsWebClientId, string _adlsClientSecret)
{
SynchronizationContext.SetSynchronizationContext(new SynchronizationContext());
/*_adlsDomain ==> DirectoryID or TenantID
_adlsWebClientId ==> Application ID
_adlsClientSecret ==> Active Directory APplication key1
*/
ClientCredential clientCredential = new ClientCredential(_adlsWebClientId, _adlsClientSecret);
return ApplicationTokenProvider.LoginSilentAsync(_adlsDomain, clientCredential).Result;
}
private async Task DeleteFile(string path)
{
string _adlsDomain = "xxxx";
string _adlsWebClientId = "xxxx";
string _adlsClientSecret = "xxxx";
string _subscription_id = "xxxx";
string _adlsAccountName = "xxxxxxx";
ServiceClientCredentials _creds = Authenticate(_adlsDomain, _adlsWebClientId, _adlsClientSecret)
// Create client objects and set the subscription ID
DataLakeStoreAccountManagementClient _adlsClient = new DataLakeStoreAccountManagementClient(_creds) { SubscriptionId = _subscription_id };
DataLakeStoreFileSystemManagementClient _adlsFileSystemClient = new DataLakeStoreFileSystemManagementClient(_creds);
await _adlsFileSystemClient.FileSystem.DeleteAsync(_adlsAccountName, path);
}https://stackoverflow.com/questions/45820873
复制相似问题