Accorder un accès limité aux fichiers Dataverse à l’aide de signatures d’accès partagé
Pendant une heure, toute personne peut télécharger un fichier stocké dans Dataverse à l’aide d’une URL générée avec le message GetFileSasUrl
. Cette URL fournit un accès anonyme à toute personne pendant cette heure, à partir du moment où l’URL est générée. La personne qui appelle GetFileSasUrl
pour générer l’URL doit avoir accès à l’enregistrement contenant le fichier.
Les fichiers peuvent être des pièces jointes, des notes, des colonnes de fichiers ou des colonnes d’images. Certaines limitations s’appliquent
Paramètres
Le message GetFileSasUrl
a les paramètres suivants :
Nom | Type | Description |
---|---|---|
Target |
EntityReference/ crmbaseentity |
Identifie la ligne de la table avec les données du fichier ou de l’image. |
FileAttributeName |
chaîne | Identifie le nom de la colonne de fichier ou d’image avec les données. Pour les enregistrements de notes et d’attributs, cette valeur doit être une chaîne vide. |
DataSource |
chaîne | Valeur « retained » ou « bin » lorsque l’enregistrement a été marqué pour la conservation des données à long terme ou supprimé dans une table avec la fonction de corbeille activée. |
Réponse
Les données renvoyées par le message GetFileSasUrl
ont une propriété Result
avec ces données :
Nom | Type | Description |
---|---|---|
FileName |
chaîne | Nom du fichier. |
FileSizeInBytes |
int64 | Taille du fichier en octets. |
MimeType |
chaîne | Type MIME du fichier. |
SasUrl |
chaîne | URL de la signature d’accès partagé (SAS) qui peut être utilisée pour accéder au fichier. |
Exemples
Ces exemples de fonctions montrent comment utiliser le message GetFileSasUrl
avec le SDK pour .NET et l’API Web.
Cette méthode statique GetFileSasUrl
utilise les classes GetFileSasUrlRequest et GetFileSasUrlResponse. La propriété GetFileSasUrlResponse.Response.Result renvoie une instance de la classe FileSasUrlResponse avec les informations nécessaires pour télécharger un fichier de manière anonyme.
/// <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;
}
Limitations
Les restrictions suivantes s’appliquent :
GetFileSasUrl
ne fonctionne que pour les colonnes d’images configurées pour prendre en charge les images de taille réelle. Apprenez à détecter quelles colonnes d’images prennent en charge les images de taille réelleGetFileSasUrl
ne fonctionne pas pour les environnements qui continuent à utiliser la fonctionnalité de clé de chiffrement de base de données auto-gérée (BYOK). Les clients utilisant BYOK doivent migrer pour utiliser la clé gérée par le client (CMK) pour utiliserGetFileSasUrl
.
Voir aussi
Vue d’ensemble des fichiers et des images
Utiliser les données de colonne de fichier
Utiliser les données de colonne d’image
Utiliser des données de fichier avec des enregistrements de pièce jointe et de note