En OSS, puede establecer permisos de acceso para los objetos y controlar cómo se accede a ellos.
Notas de uso
Si usa herramientas de empaquetado como Webpack o Browserify, instale el SDK de OSS para Browser.js mediante el comando npm install ali-oss.
Si desea acceder a un bucket de OSS desde un navegador y no hay reglas de CORS configuradas para dicho bucket, el navegador rechazará la solicitud. Por lo tanto, debe configurar reglas de CORS en el bucket si pretende acceder a él desde un navegador. Para obtener más información, consulte Installation.
-
Por lo general, el SDK de OSS para Browser.js se usa en navegadores. Para evitar que su par de AccessKey quede expuesto, se recomienda usar credenciales de acceso temporal obtenidas mediante Security Token Service (STS) para acceder a OSS.
Las credenciales de acceso temporal constan de un par de AccessKey y un token de seguridad. El par de AccessKey incluye un AccessKey ID y un AccessKey secret. Para más detalles sobre cómo obtener credenciales de acceso temporal, consulte Use STS for temporary access authorization.
Tipos de permisos de lectura y escritura
Los objetos admiten los siguientes cuatro tipos de listas de control de acceso (ACL):
Los permisos de acceso de un objeto tienen prioridad sobre los permisos de acceso de su bucket. Por ejemplo, si un bucket es privado pero un objeto dentro de él tiene permiso de lectura pública, cualquier persona, incluidos los usuarios anónimos, podrá leer dicho objeto.
|
Tipo de permiso |
Descripción |
Valor del permiso |
|
Heredado del bucket (predeterminado) |
Si un objeto no tiene permisos de acceso propios, hereda la ACL de su bucket. En este caso, el objeto cuenta con los mismos permisos que el bucket. |
default |
|
Privado |
Solo el propietario del objeto puede leerlo y escribir en él. Los demás usuarios no pueden acceder al objeto. |
private |
|
Lectura pública |
Solo el propietario del objeto puede escribir en él. Cualquier persona, incluidos los usuarios anónimos, puede leer el objeto. Aviso
Cualquier usuario en Internet puede acceder al objeto. Esto podría provocar fugas de datos y un aumento inesperado en los costos. Use este permiso con precaución. |
public-read |
|
Lectura y escritura públicas |
Cualquier persona, incluidos los usuarios anónimos, puede leer y escribir en el objeto. Aviso
Cualquier usuario en Internet puede acceder al objeto y escribir datos en él. Esta situación puede causar fugas de información e incrementos significativos en las tarifas. Si usuarios malintencionados escriben contenido ilegal en el objeto, sus derechos e intereses legales podrían verse afectados. No configure permisos de lectura y escritura públicas salvo en escenarios específicos. |
public-read-write |
Código de ejemplo
Al cargar un objeto, su ACL hereda la configuración del bucket de forma predeterminada. Use putACL para modificar la ACL del objeto.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Document</title>
</head>
<body>
<script src="https://gosspublic.alicdn.com/aliyun-oss-sdk-6.18.0.min.js"></script>
<script>
const client = new OSS({
// Set region to the region where the bucket is located. For example, if the bucket is in the China (Hangzhou) region, set region to oss-cn-hangzhou.
region: "yourRegion",
authorizationV4: true,
// The temporary AccessKey pair (AccessKey ID and AccessKey secret) obtained from Security Token Service (STS).
accessKeyId: "yourAccessKeyId",
accessKeySecret: "yourAccessKeySecret",
// The security token (SecurityToken) obtained from STS.
stsToken: "yourSecurityToken",
// Specify the bucket name. For example, examplebucket.
bucket: "examplebucket",
});
async function getACL() {
try {
result = await client.getACL("examplefile.txt");
console.log(result.acl);
await client.putACL("examplefile.txt", "public-read");
result = await client.getACL("examplefile.txt");
console.log(result.acl);
} catch (e) {
console.log(e);
}
}
getACL();
</script>
</body>
</html>
Referencias
Para consultar el código de ejemplo completo sobre permisos de acceso a objetos, revise el ejemplo en GitHub.
Para obtener más información sobre la operación de API destinada a establecer permisos de acceso a objetos, consulte PutObjectACL.
Para obtener más información sobre la operación de API destinada a recuperar permisos de acceso a objetos, consulte GetObjectACL.