Mam sytuację, w której kopiuję wiele obiektów typu blob z jednego kontenera do drugiego, a niektóre z obiektów typu blob zostały skopiowane, ale wiele z nich nadal oczekuje po dwóch dniach od zainicjowania kopii. Robię to określenie na podstawie faktu, że jeśli staram się zrobić coś z docelowym blob otrzymuję poniżej błędu:StartCopyFromBlob w pakiecie Azure SDK 2.0 zajmuje kilka dni?
Microsoft.WindowsAzure.StorageClient.StorageClientException : There is currently a pending copy operation. ----> System.Net.WebException : The remote server returned an error: (409) Conflict.
Czy jest coś, co mogę z tym zrobić? Na przykład czy mogę przerwać kopię po fakcie?
Oto kod, którego używam do wykonania kopii.
try
{
destinationBlob.StartCopyFromBlob(
new Uri(sourceBlob.Uri.AbsoluteUri + signature));
System.Diagnostics.Trace.TraceInformation(
"Copying: {0}", destinationEndpoint.EndpointState.BlobName);
}
catch (Exception ex)
{
var we = ex.InnerException as WebException;
if (we != null && we.Status == WebExceptionStatus.ProtocolError)
{
System.Diagnostics.Trace.TraceError(
"conflict with blob copy for blob {0}", sourceBlob.Uri.AbsoluteUri);
return 0;
}
}
doskonały. tylko to, co muszę wiedzieć. użyje id identyfikatora, aby przerwać po fakcie. dzięki wielkie! – chutch
Jeszcze jedno pytanie, jak zmienić priorytet kolejki w odniesieniu do operacji kopiowania? Przeszukałem dokumenty i nie mogę znaleźć żadnego odniesienia do tego. – chutch
To było moje zło! Naprawdę nie możesz zmienić priorytetu kolejki. Tak więc, gdy zadanie kopiowania zostanie umieszczone w kolejce, możesz poczekać na zakończenie zadania lub anulować to zadanie za pomocą AbortCopy. Zaktualizowałem swoją odpowiedź. –