O OSS simula uma estrutura de pastas por meio de diretórios, facilitando a organização, a localização e a execução de operações em lote sobre grandes volumes de objetos.
Observações de uso
Ao usar ferramentas de empacotamento como Webpack e Browserify, instale o OSS SDK for Browser.js executando o comando npm install ali-oss.
Se você quiser acessar um bucket do OSS a partir de um navegador, mas nenhuma regra de CORS estiver configurada para o bucket, o navegador rejeitará a requisição. Portanto, é necessário configurar regras de CORS para o bucket se você quiser acessá-lo a partir de um navegador. Para obter mais informações, consulte Installation.
-
Na maioria dos casos, o OSS SDK for Browser.js é utilizado em navegadores. Para evitar a exposição do par de AccessKey, recomenda-se usar credenciais de acesso temporárias obtidas pelo Security Token Service (STS) para acessar o OSS.
As credenciais de acesso temporárias consistem em um par de AccessKey e um token de segurança. O par de AccessKey é composto por um AccessKey ID e um AccessKey secret. Para obter mais informações sobre como obter credenciais de acesso temporárias, consulte Use STS for temporary access authorization.
Criar um diretório
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<script src="https://gosspublic.alicdn.com/aliyun-oss-sdk-6.18.0.min.js"></script>
</head>
<body>
<script>
const client = OSS({
// Set yourRegion to the region where the bucket is located. For example, if the region is China (Hangzhou), set yourRegion to oss-cn-hangzhou.
region: 'yourRegion',
authorizationV4: true,
// The temporary AccessKey pair (AccessKey ID and AccessKey secret) obtained from the STS service.
accessKeyId: 'yourAccessKeyId',
accessKeySecret: 'yourAccessKeySecret',
// The security token (SecurityToken) obtained from the STS service.
stsToken: 'yourSecurityToken',
// Specify the bucket name.
bucket: 'examplebucket'
});
// Specify the directory name. The directory name must end with a forward slash (/).
client
.put("log/", new Blob([]))
.then((r) => {
console.log(r);
})
.catch((e) => {
console.log(e);
});
</script>
</body>
</html>
Excluir um diretório
Para excluir um diretório e todos os seus objetos, especifique um Prefix. Por exemplo, para excluir o diretório log do bucket examplebucket, defina Prefix como log/.
Excluir um diretório também remove todos os seus subdiretórios e objetos. Prossiga com cautela.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<script src="https://gosspublic.alicdn.com/aliyun-oss-sdk-6.18.0.min.js"></script>
</head>
<body>
<script>
const client = new OSS({
// Set yourRegion to the region where the bucket is located. For example, if the region is China (Hangzhou), set yourRegion to oss-cn-hangzhou.
region: "yourRegion",
authorizationV4: true,
// The temporary AccessKey ID and AccessKey secret obtained from the STS service.
accessKeyId: "yourAccessKeyId",
accessKeySecret: "yourAccessKeySecret",
// The security token obtained from the STS service.
stsToken: 'yourSecurityToken',
// Specify the bucket name. For example, examplebucket.
bucket: "examplebucket",
});
// Handle request failures. This prevents promise.all from being interrupted and returns the failure reason and the name of the failed file.
async function handleDel(name, options) {
try {
await client.delete(name);
} catch (error) {
error.failObjectName = name;
return error;
}
}
// Delete multiple files.
async function deletePrefix(prefix) {
const list = await client.list({
prefix: prefix,
});
list.objects = list.objects || [];
const result = await Promise.all(
list.objects.map((v) => handleDel(v.name))
);
console.log(result);
}
// Delete a directory and all files in the directory.
deletePrefix("log/");
</script>
</body>
</html>
Referências
Para obter mais informações sobre as operações de API disponíveis para criar um diretório, consulte PutObject e CreateDirectory.
Para obter mais informações sobre a operação de API utilizada para excluir pastas e todos os seus arquivos, consulte DeleteObject.