Création d'une demande pré-authentification dans Object Storage
Créez une demande pré-authentifiée pour tous les objets d'un bucket Object Storage ou pour un objet spécifique.
Pour limiter la portée d'une demande pré-authentifiée aux objets qui commencent par un préfixe spécifique, reportez-vous à Création d'une demande pré-authentifiée pour les objets avec un préfixe spécifique.
Pour plus d'informations sur les demandes pré-authentifiées, reportez-vous à Utilisation de demandes pré-authentifiées.- Important
L'URL unique fournie par le système lors de la création d'une demande pré-authentifiée est la seule façon dont un utilisateur peut accéder à la cible de la demande. L'URL est affichée uniquement lors de la création. Elle n'est pas stockée dans Object Storage. Vous ne pouvez plus y accéder ni l'extraire une fois que vous avez fermé la boîte de dialogue Détails de la demande pré-authentifiée. Assurez-vous de le stocker dans un endroit sûr et récupérable.
Utilisez la commande oci os preauth-request create et les paramètres requis pour créer une demande pré-authentifiée :
oci os preauth-request create --bucket-name bucket_name --name name --access-type access_type --time-expires expiration_timestamp [OPTIONS]
Le paramètre
name
est le nom de la demande pré-authentifiée. Evitez de saisir des informations confidentielles.La valeur du paramètre
access-type
peut être l'un des éléments suivants :-
AnyObjectRead
: autorise les lectures sur tous les objets du bucket. -
AnyObjectWrite
: Autorise les écritures sur tous les objets du bucket. -
AnyObjectReadWrite
: Autorise la lecture et l'écriture sur tous les objets du bucket.
La valeur
expiration_timestamp
est requise pour utiliser un horodatage RFC 3339. Par exemple :2021-04-02T22:25:27.322000+00:00
.Par exemple :
oci os preauth-request create --bucket-name MyParBucket --name MyAllObjectsReadWritePAR --access-type AnyObjectReadWrite --time-expires="2022-11-21T23:00:00+00:00" { "data": { "access-type": "AnyObjectReadWrite", "access-uri": "/p/2WOshPVWv9uqIqy6abokChGEXYdCZ8l75CoO26YkSARiRevWlDWJD_QUvtFPUocn/n/MyNamespace/b/MyParBucket/o/", "id": "QgT6f1skUMbXDhpXKQ4BRX9u7ci8AAJ7f9OGzgdEkNJ3XQmHzeN/kDhLEbN2HvPn", "name": "MyAllObjectsReadWritePAR", "object-name": null, "time-created": "2021-04-02T22:25:27.322000+00:00", "time-expires": "2022-11-21T23:00:00+00:00"
Liste des objets
L'action permettant d'établir la liste des objets est refusée par défaut. Si
--access-type
est défini surAnyObjectRead
ouAnyObjectReadWrite
, vous pouvez indiquer le paramètre facultatif--bucket-listing-action ListObjects
lors de la création de la demande pré-authentifiée qui permet aux utilisateurs de répertorier les objets du bucket.Par exemple, pour créer une demande pré-authentification qui autorise l'accès en lecture et en écriture à tous les objets du bucket nomméMyParBucket
, procédez comme suit :oci os preauth-request create --namespace MyNamespace --bucket-name MyParBucket --name MyAllObjectsReadWritePAR --access-type AnyObjectReadWrite --time-expires="2022-11-21T23:00:00+00:00" --bucket-listing-action ListObjects { "data": { "access-type": "AnyObjectReadWrite", "access-uri": "/p/2WOshPVWv9uqIqy6abokChGEXYdCZ8l75CoO26YkSARiRevWlDWJD_QUvtFPUocn/n/MyNamespace/b/MyParBucket/o/", "bucket-listing-action": "ListObjects", "id": "QgT6f1skUMbXDhpXKQ4BRX9u7ci8AAJ7f9OGzgdEkNJ3XQmHzeN/kDhLEbN2HvPn", "name": "MyAllObjectsReadWritePAR", "object-name": null, "time-created": "2021-04-02T22:25:27.322000+00:00", "time-expires": "2022-11-21T23:00:00+00:00" } }
Important
La valeur de
access-uri
fournie par le système lorsque vous créez une demande pré-authentification est l'élément clé de l'URL à construire pour fournir l'accès utilisateur au bucket cible. Copiez la valeur deaccess-uri
vers un stockage durable. L'élémentaccess-uri
est affiché uniquement lors de la création et ne peut pas être extrait ultérieurement.L'URL de demande pré-authentifiée unique fournie aux utilisateurs pour l'exemple précédent est construite comme suit :
https://objectstorage.region_identifier.oraclecloud.comaccess_uri
Reportez-vous à A propos des régions et des domaines de disponibilité pour obtenir la liste des identificateurs de région valides.
Par exemple, voici l'URL complète de la demande qui autorise les lectures et les écritures sur tous les objets du bucket nommé
MyParBucket
:https://objectstorage.us-phoenix-1.oraclecloud.com/p/2WOshPVWv9uqIqy6abokChGEXYdCZ8l75CoO26YkSARiRevWlDWJD_QUvtFPUocn/n/MyNamespace/b/MyParBucket/o/
Voici un exemple d'utilisation de cURL pour exécuter une demande
PUT
sur un objet à l'aide de la demande pré-authentifiée qui autorise les lectures et les écritures sur tous les objets du bucket nomméMyParBucket
et dont la liste des objets est activée :$ curl -X PUT --data-binary '@edit-lifecycle-rules.pdf' https://objectstorage.us-phoenix-1.oraclecloud.com/p/l04eqXvxQ5HcnrXkWS8Kdf4mS812KLDyG_dbArXa8hDdHssXTKiUD0w2HNCEDS4W/n/MyNamespace/b/MyParBucket/o/edit-lifecycle-rules.pdf
Voici un exemple d'utilisation de cURL pour exécuter une demande
GET
sur des objets à l'aide de la même demande pré-authentifiée :$ curl -X GET https://objectstorage.us-phoenix-1.oraclecloud.com/p/2WOshPVWv9uqIqy6abokChGEXYdCZ8l75CoO26YkSARiRevWlDWJD_QUvtFPUocn/n/MyNamespace/b/MyParBucket/o/ {"objects":[{"name":"InfoWorld DeepDive - Tips for Git and GitHub Users.pdf"},{"name":"OCISG_README.txt"},{"name":"OCI_User_Guide.pdf"},{"name":"OracleCorporateTerminologyUsageGuideRedwood.pdf"},{"name":"VPN.png"},{"name":"eventslogreference.htm"},{"name":"flowlogreference.htm"},{"name":"functionslogreference.htm"},{"name":"glob.txt"},{"name":"loadbalancerreference.htm"},{"name":"objectstoragelogreference.htm"},{"name":"replication.txt"},{"name":"troubleshooting.txt"},{"name":"udx-1494-lifecycle-rule-glob.pdf"}]}
La demande
GET
répertorie les demandesPUT
récentes pouredit-lifecycle-rules.pdf
et tous les autres objets du bucket. Vous pouvez éventuellement utiliser le paramètre de requêtefields
pour inclure également les champssize
(taille de l'objet en octets),etag
,md5
,timeCreated
(date et heure de création de l'objet),timeModified
(date et heure de modification de l'objet),storageTier
etarchivalState
. Pour plus d'informations, reportez-vous à Liste des objets.Création d'une demande pré-authentification pour un objet spécifique
Incluez le paramètre
object-name
et le nom de l'objet afin de créer une demande pré-authentifiée pour un objet spécifique. Par exemple, pour créer une demande pré-authentification qui autorise les lectures et les écritures sur un objet nomméOCI_User_Guide.pdf
dans le bucket nomméMyParBucket
, exécutez la commande d'interface de ligne de commande suivante :oci os preauth-request create --bucket-name MyParBucket --name MyObjectReadWritePAR --access-type ObjectReadWrite --object-name OCI_User_Guide.pdf --time-expires="2022-11-21T23:00:00+00:00" { "data": { "access-type": "ObjectReadWrite", "access-uri": "/p/v0YC_6i3NamyrKlIds0SKnWUMQLw_PFolSyGCpjVUJ6h_A1tnkXJ9VRcuQZTgjRa/n/MyNamespace/b/MyParBucket/o/OCI_User_Guide.pdf", "bucket-listing-action": null, "id": "vNObHUdqwf7pfCq9pup/LlMLTLxBt2N2OCKrGwimLFOoJlVfxj/dlESbxyd54vpf:OCI_User_Guide.pdf", "name": "MyObjectReadWritePAR", "object-name": "OCI_User_Guide.pdf", "time-created": "2021-04-01T14:37:26.869000+00:00", "time-expires": "2022-11-21T23:00:00+00:00" } }
L'URL de demande pré-authentifiée unique fournie aux utilisateurs pour l'exemple précédent est construite comme suit :
https://objectstorage.region_ID.oraclecloud.comaccess_uri
Par exemple, voici l'URL complète de la demande qui autorise les lectures et les écritures sur un objet nommé
OCI_User_Guide.pdf
dans le bucket nomméMyParBucket
:https://objectstorage.us-phoenix-1.oraclecloud.com/p/v0YC_6i3NamyrKlIds0SKnWUMQLw_PFolSyGCpjVUJ6h_A1tnkXJ9VRcuQZTgjRa/n/MyNamespace/b/MyParBucket/o/OCI_User_Guide.pdf
Voici un exemple d'utilisation de cURL pour exécuter une demande
PUT
sur un objet à l'aide de la demande pré-authentifiée qui autorise les lectures et les écritures sur l'objet cible nomméOCI_User_Guide.pdf
dans le bucket nomméMyParBucket
:$ curl -X PUT --data-binary '@OCI_User_Guide.pdf' https://objectstorage.us-phoenix-1.oraclecloud.com/p/v0YC_6i3NamyrKlIds0SKnWUMQLw_PFolSyGCpjVUJ6h_A1tnkXJ9VRcuQZTgjRa/n/MyNamespace/b/MyParBucket/o/OCI_User_Guide.pdf
Voici un exemple d'utilisation de cURL pour exécuter une demande
GET
sur l'objet cible à l'aide de la même demande pré-authentifiée :$ curl -X GET https://objectstorage.us-phoenix-1.oraclecloud.com/p/v0YC_6i3NamyrKlIds0SKnWUMQLw_PFolSyGCpjVUJ6h_A1tnkXJ9VRcuQZTgjRa/n/MyNamespace/b/MyParBucket/o/OCI_User_Guide.pdf '@OCI_User_Guide.pdf'
Création d'une demande pré-authentification pour un objet spécifique avec préfixe
Incluez le paramètreobject-name
et le préfixe afin de créer une demande pré-authentifiée pour tous les objets dont le nom correspond au préfixe indiqué. Par exemple, pour créer une demande pré-authentification qui autorise les lectures et les écritures sur les objets comportant le préfixeservice
dans le bucket nomméMyParBucket
, procédez comme suit :oci os preauth-request create --bucket-name MyParBucket --name PrefixedObjectsReadWritePAR --access-type AnyObjectReadWrite --object-name service --time-expires "2022-11-21T23:00:00+00:00" --bucket-listing-action ListObjects { "data": { "access-type": "AnyObjectReadWrite", "access-uri": "/p/l04eqXvxQ5HcnrXkWS8Kdf4mS812KLDyG_dbArXa8hDdHssXTKiUD0w2HNCEDS4W/n/MyNamespace/b/MyParBucket/o/", "bucket-listing-action": "ListObjects", "id": "YOExDlFsNYBNEwF8Uo4aK8WHiz59enVQm1aID+4cxFobgcaofVbZkg371rxK+6Vb", "name": "PrefixedObjectsReadWritePAR", "object-name": "service", "time-created": "2021-04-01T15:35:40.609000+00:00", "time-expires": "2022-11-21T23:00:00+00:00" } }
Indiquez le préfixe à mettre en correspondance dans le paramètre
--object-name
:- Vous pouvez indiquer un préfixe qui inclut des barres obliques (/) afin d'effectuer une mise en correspondance avec les noms d'objet qui simulent une hiérarchie ou une structure de répertoires.
- Vous pouvez indiquer une chaîne de préfixe sans délimiteur afin d'effectuer une mise en correspondance avec les caractères les plus à gauche du nom d'objet.
L'URL de demande pré-authentifiée unique fournie aux utilisateurs pour l'exemple précédent est construite comme suit :
https://objectstorage.<region_identifier>.oraclecloud.com<access-uri>
Reportez-vous à A propos des régions et des domaines de disponibilité pour obtenir la liste des identificateurs de région valides.
Par exemple, voici l'URL complète de la demande qui autorise les lectures et les écritures sur les objets comportant le préfixe
service
dans le bucket nomméMyParBucket
:https://objectstorage.us-phoenix-1.oraclecloud.com/p/l04eqXvxQ5HcnrXkWS8Kdf4mS812KLDyG_dbArXa8hDdHssXTKiUD0w2HNCEDS4W/n/MyNamespace/b/MyParBucket/o/
Lorsque vous créez une demande pré-authentifiée qui limite la portée aux objets avec un préfixe spécifique, les utilisateurs de la demande peuvent uniquement exécuter des demandes
GET
etPUT
sur les objets comportant le nom de préfixe indiqué dans la demande. Les tentatives d'exécution de demandeGET
ouPUT
sur un objet sans préfixe ou avec un autre préfixe échouent.Voici un exemple d'utilisation de cURL pour exécuter une demande
PUT
sur un objet à l'aide de la demande pré-authentifiée qui autorise les lectures et les écritures sur les objets comportant le préfixeservice
dans le bucket nomméMyParBucket
:$ curl -X PUT --data-binary '@servicediscovery.dita' https://objectstorage.us-phoenix-1.oraclecloud.com/p/l04eqXvxQ5HcnrXkWS8Kdf4mS812KLDyG_dbArXa8hDdHssXTKiUD0w2HNCEDS4W/n/MyNamespace/b/MyParBucket/o/servicediscovery.dita
Voici un exemple d'utilisation de cURL pour exécuter une demande
GET
sur des objets à l'aide de la même demande pré-authentifiée :$ curl -X GET https://objectstorage.us-phoenix-1.oraclecloud.com/p/l04eqXvxQ5HcnrXkWS8Kdf4mS812KLDyG_dbArXa8hDdHssXTKiUD0w2HNCEDS4W/n/MyNamespace/b/MyParBucket/o/ {"objects":[{"name":"servicechanges.html"},{"name":"servicediscovery.dita"},{"name":"serviceessentials.html"},{"name":"servicelogreference.htm"},{"name":"services.html"}]}
La demande
GET
répertorie les demandesPUT
récentes pourservicediscovery.dita
et tous les autres objets comportant le préfixeservice
. Vous pouvez éventuellement utiliser le paramètre de requêtefields
pour inclure également les champssize
(taille de l'objet en octets),etag
,md5
,timeCreated
(date et heure de création de l'objet),timeModified
(date et heure de modification de l'objet),storageTier
etarchivalState
. Pour plus d'informations, reportez-vous à Liste des objets.Voici un autre exemple d'utilisation de cURL pour exécuter une demande
PUT
sur un objet à l'aide de la même demande pré-authentifiée. La demande échoue car l'objet ne comporte pas le préfixeservice
:$ curl -X PUT --data-binary '@objectstoragelogreference.htm' https://objectstorage.us-phoenix-1.oraclecloud.com/p/l04eqXvxQ5HcnrXkWS8Kdf4mS812KLDyG_dbArXa8hDdHssXTKiUD0w2HNCEDS4W/n/MyNamespace/b/MyParBucket/o/objectstoragelogreference.htm {"code":"NotAuthenticated","message":"PAR does not exist"}
Afin d'obtenir la liste complète des paramètres et des valeurs pour les commandes d'interface de ligne de commande, reportez-vous à Référence de commande d'interface de ligne de commande.
-
Exécutez l'opération CreatePreauthenticatedRequest pour créer une demande pré-authentifiée.