gpt4 book ai didi

file-upload - YouTube API上传 “A task was cancelled”

转载 作者:行者123 更新时间:2023-12-03 05:27:47 30 4
gpt4 key购买 nike

我们已经运行了一年多的服务,可以使用API​​ v3 Upload(使用.NET库Google.Apis.YouTube.v3)将视频上传到YouTube。

在最近的两天内,我们突然开始在上传过程中所有上传均失败,并且错误从YouTube返回“任务已取消”。这些视频已部分上传到YouTube,它们的进度各不相同(虽然只有几MB的内存,但有些却高达17-20MB,尽管看来,进度较大的是早先的失败列表)。

这首先发生在星期五晚上,我能够在星期六早上无故障地推送所有失败的视频,但是随后在星期六早上又重新开始了,因为母鸡在星期六下午和晚上的所有视频都失败了。我们说的是总共25个左右的视频,而不是数百个。这些视频的大小均为40MB左右。

通常一次只能上传2-3个视频。当我在周六早上成功推高所有筹码时,我实际上一次推高了大约4-5。

其他人能否提出可能的原因或任何故障排除提示?否则,我们没有看到任何服务器连接问题,并且在该服务器上运行的网站没有任何明显的问题。除了YouTube出现此“任务已取消”错误外,我看不到其他任何错误,直到该错误为止,上传者的进度均成功。

编辑:运行开发人员环境中的其中一个上传文件,我也能够重现此问题。我刚刚尝试获取一套全新的API凭据(实际上是用于其他YouTube帐户的),刷新了oAuth token ,仍然遇到同样的问题。

最佳答案

您需要先设置超时时间,然后才能使用该服务;如果用户对其进行了更改,则需要暂停所有上载操作,将该服务设为空并再次对其进行初始化。

我敢肯定,我可以确认设置YouTubeService.HttpClient.Timeout确实可以解决问题。

抱歉,我延迟回复。

internal YouTubeService YouTubeService { get; set; }

internal async Task InitialiseYouTubeServiceAsync(int timeoutSeconds)
{

var scope = new List<string> { YouTubeService.Scope.YoutubeUpload, YouTubeService.Scope.Youtube, };
var clientSecrets = new ClientSecrets()
{
ClientId = Constants.ClientId,
ClientSecret = Constants.ClientSecret
};

var fileDataStore = new FileDataStore(Constants.FileDataStore);

try
{

var credentialTask = GoogleWebAuthorizationBroker.AuthorizeAsync(
clientSecrets, scope, Environment.UserName, CancellationToken.None, fileDataStore);

//This is a hack to allow a progress bar timeout when the user closes the
//browser without authorising. It's not associated with the question at hand.
await Task.WhenAny(credentialTask, Task.Delay(TimeSpan.FromSeconds(timeoutSeconds)));

if (credentialTask.Status == TaskStatus.WaitingForActivation) return;

var initializer = new BaseClientService.Initializer()
{
HttpClientInitializer = credentialTask.Result,
ApplicationName = Constants.ApplicationName,
};

YouTubeService = new YouTubeService(initializer);

//This is the answer to the question at hand.
YouTubeService.HttpClient.Timeout = TimeSpan.FromMinutes(Settings.Default.TimeoutMinutes);

}
catch (AggregateException)
{
Exceptions.LogSilent(new Exception(ResourceExceptions.AuthorisationDenied), MethodBase.GetCurrentMethod(), EventLogEntryType.Information);
}

}

关于file-upload - YouTube API上传 “A task was cancelled”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34249180/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com