Freigeben über


Gewähren Sie mithilfe von Shared Access Signatures eingeschränkten Zugriff auf Dataverse Dateien.

Eine Stunde lang kann jeder mithilfe einer mit der GetFileSasUrl-Nachricht generierten URL eine in Dataverse gespeicherte Datei herunterladen. Diese URL bietet jedem während dieser Stunde anonymen Zugriff, beginnend mit der Generierung der URL. Die Person, welche GetFileSasUrl zum Generieren der URL aufruft, muss Zugriff auf den Datensatz haben, der die Datei enthält.

Dateien können Anhänge, Notizen, Dateispalten oder Bildspalten sein. Es gelten einige Einschränkungen

Parameter

Die GetFileSasUrl-Nachricht hat die folgenden Parameter:

Name des Dataflows typ Beschreibung
Target EntityReference/
crmbaseentity
Identifiziert die Tabellenzeile mit den Datei- oder Bilddaten.
FileAttributeName string Identifiziert den Namen der Datei- oder Bildspalte mit den Daten. Bei Notiz- und Attributdatensätzen muss dieser Wert eine leere Zeichenfolge sein.
DataSource string Ein Wert von retained oder bin, wenn der Datensatz für die langfristige Datenaufbewahrung gekennzeichnet oder in einer Tabelle mit der aktivierten Papierkorbfunktion gelöscht wurde.

Antworten

Die von der GetFileSasUrl Nachricht zurückgegebenen Daten haben eine Result Eigenschaft mit diesen Daten:

Name des Dataflows typ Beschreibung
FileName string Der Dateiname.
FileSizeInBytes int64 Die Größe der Datei in Byte.
MimeType string Der MIME-Medientyp der Datei.
SasUrl string Die Shared Access Signature (SAS)-URL, die für den Zugriff auf die Datei verwendet werden kann.

Beispiele

Diese Beispielfunktionen zeigen, wie die GetFileSasUrl-Nachricht sowohl mit dem SDK für .NET als auch mit der Web-API verwendet wird.

Diese statische GetFileSasUrl-Methode verwendet die Klassen GetFileSasUrlRequest und GetFileSasUrlResponse. Die GetFileSasUrlResponse.Result-Eigenschaft gibt eine Instanz der FileSasUrlResponse-Klasse mit den zum anonymen Herunterladen einer Datei erforderlichen Informationen zurück.

/// <summary>
/// Generates a link for anonymous access to a file.
/// </summary>
/// <param name="service">The authenticated IOrganizationService instance.</param>
/// <param name="target">The record that has the file data.</param>
/// <param name="fileAttributeName">Optional name of the file or image column</param>
/// <param name="dataSource">Optional source of the data when retained or deleted.</param>
/// <returns>Information to download a file</returns>
static FileSasUrlResponse GetFileSasUrl(IOrganizationService service, 
    EntityReference target, 
    string? fileAttributeName = null, 
    string? dataSource = null) { 

    var request = new GetFileSasUrlRequest() { 
        Target = target
    };

    if (target.LogicalName == "annotation" ||
        target.LogicalName == "activitymimeattachment"){

        //FileAttributeName is required
        request.FileAttributeName = string.Empty;

    }
    else
    {

        if (!string.IsNullOrEmpty(fileAttributeName))
        {
            request.FileAttributeName = fileAttributeName;
        }
        else
        {

            string message = "fileAttributeName is required ";
            message += "when the target isn't annotation ";
            message += "or activitymimeattachment";

            throw new Exception(message);
        }
    }
    
    if (!string.IsNullOrEmpty(dataSource)) {
        //dataSource should be 'retained' or 'bin'
        request.DataSource = dataSource;
    }

   var response = (GetFileSasUrlResponse)service.Execute(request);

    return response.Result;        
}

Das SDK für .NET verwenden

Einschränkungen

Die folgenden Einschränkungen gelten:

Siehe auch

Dateien und Bilder – Übersicht
Dateispaltendaten verwenden
Bildspaltendaten verwenden
Dateidaten mit Anlagen- und Notizdatensätzen verwenden