Blob-Metadaten werden nicht gespeichert, obwohl ich CloudBlob.SetMetadata aufgerufen habe

8

Einige Stunden lang habe ich versucht, einige Metadaten für den Blob festzulegen, den ich mit dem Azure SDK erstellt habe. Ich lade die Daten asynchron mit BeginUploadFromStream() hoch und alles funktioniert reibungslos. Ich kann auf den Blob mit seinem URI zugreifen, wenn der Upload abgeschlossen ist. Er wird also erfolgreich erstellt, alle von mir festgelegten Metadaten werden jedoch nicht beibehalten .

Ich setze die Metadaten nachdem EndUploadFromStream() aufgerufen hat.

Ich habe versucht, die Metadaten auf die drei Wege zu setzen, die ich über die Dokumentation :

%Vor%

Nach dem Einstellen der Metadaten rufe ich myBlob.SetMetadata() auf, um die Metadaten in Azure zu speichern, wie in der Dokumentation angegeben, aber es bleibt nicht erhalten. Der Aufruf verursacht keine Ausnahmen , aber wenn ich einen neuen Verweis auf meinen Blob erhalte, hat keine Metadaten .

Ich habe versucht, die Metadaten asynchron zu speichern, indem ich BeginSetMetadata() und EndSetMetadata() verwende, aber mit ähnlichem Ergebnis.

Ich fange an zu denken, dass ich etwas wirklich Triviales vermisse, aber nachdem ich es fünf Stunden lang angeschaut habe, kann ich immer noch nicht verstehen, wo ich falsch liege?

    
Christofer Eliasson 23.10.2012, 13:08
quelle

1 Antwort

20

SetMetadata sollte wie erwartet funktionieren. Es reicht jedoch nicht aus, nur einen Verweis auf den Blob zu erhalten, um die Metadaten zu lesen.

Nachdem Sie die Blob-Referenz abgerufen haben, müssen Sie die Methode FetchAttributes auf diesem CloudBlob aufrufen. Dadurch werden alle Eigenschaften und Metadaten geladen, und nur dann können Sie auf die Metadaten zugreifen, die Sie zuvor festgelegt haben:

%Vor%     
Sandrino Di Mattia 23.10.2012, 13:23
quelle