Ho una situazione in cui copio molti BLOB da un contenitore di memoria a un altro e alcuni dei BLOB sono stati copiati, ma molti di essi sono ancora in sospeso dopo due giorni da quando ho avviato la copia. Sto facendo questa determinazione sulla base del fatto che, se provo a fare qualsiasi cosa con il blob destinazione sto ottenendo l'errore sotto:StartCopyFromBlob in Azure SDK 2.0 che richiede giorni?
Microsoft.WindowsAzure.StorageClient.StorageClientException : There is currently a pending copy operation. ----> System.Net.WebException : The remote server returned an error: (409) Conflict.
C'è qualcosa che posso fare? Ad esempio, posso annullare la copia dopo il fatto?
Ecco il codice di copia che sto usando per eseguire la copia.
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;
}
}
perfetto. proprio quello che dovevo sapere. userà l'id della copia per interrompere dopo il fatto. grazie mille! – chutch
un'ultima domanda però, come si modifica la priorità della coda per quanto riguarda l'operazione di copia? Ho cercato i documenti e non riesco a trovare alcun riferimento a questo. – chutch
Quello era il mio cattivo! Non puoi davvero cambiare la priorità della coda. Quindi, una volta che un lavoro di copia viene messo in coda, attendere il completamento del lavoro o annullare quel lavoro utilizzando AbortCopy. Ho aggiornato la mia risposta. –