Les liens symboliques fonctionnent comme des raccourcis de fichiers sous Windows et permettent d'accéder rapidement aux objets associés dans Object Storage Service (OSS).
Notes d'utilisation
Avant d'exécuter l'exemple de code de cette rubrique, créez une instance OSSClient en utilisant un nom de domaine personnalisé ou le Security Token Service (STS). Pour plus d'informations, consultez la section Initialisation (SDK Android).
Créer un lien symbolique
L'exemple de code suivant montre comment créer un lien symbolique :
// Create a request.
PutSymlinkRequest putSymlink = new PutSymlinkRequest();
// Specify the name of the bucket.
putSymlink.setBucketName("yourBucketName");
// Specify the name of the symbolic link.
putSymlink.setObjectKey("yourSymLink");
// Specify the name of the object to which you want the symbolic link to point.
putSymlink.setTargetObjectName("yourTargetObjectName");
ObjectMetadata metadata = new ObjectMetadata();
// Specify whether to overwrite the object that has the same name. In this example, this parameter is set to true, which indicates that the object that has the same name cannot be overwritten.
//metadata.setHeader("x-oss-forbid-overwrite", "true");
// Specify the access control list (ACL) of the object. In this example, the ACL is set to private.
//metadata.setHeader("x-oss-object-acl", "private");
// Specify the storage class of the object. In this example, the storage class is set to Standard.
//metadata.setHeader("x-oss-storage-class", "Standard");
putSymlink.setMetadata(metadata);
OSSAsyncTask task = oss.asyncPutSymlink(putSymlink, new OSSCompletedCallback<PutSymlinkRequest, PutSymlinkResult>() {
@Override
public void onSuccess(PutSymlinkRequest request, PutSymlinkResult result) {
Log.d("PutSymlink", "PutSymlink success");
}
@Override
public void onFailure(PutSymlinkRequest request, ClientException clientException,
ServiceException serviceException) {
// Handle request exceptions.
if (clientException != null) {
// Handle client exceptions, such as network exceptions.
clientException.printStackTrace();
}
if (serviceException != null) {
// Handle server-side exceptions.
Log.e("ErrorCode", serviceException.getErrorCode());
Log.e("RequestId", serviceException.getRequestId());
Log.e("HostId", serviceException.getHostId());
Log.e("RawMessage", serviceException.getRawMessage());
}
}
});
task.waitUntilFinished();
Interroger le nom de l'objet ciblé par un lien symbolique
Pour interroger un lien symbolique, vous devez disposer des autorisations de lecture sur ce lien. L'exemple de code suivant montre comment récupérer le nom de l'objet ciblé par un lien symbolique :
// Create a request.
GetSymlinkRequest getSymlink = new GetSymlinkRequest();
// Specify the name of the bucket.
getSymlink.setBucketName("yourBucketName");
// Specify the name of the symbolic link.
getSymlink.setObjectKey("yourSymLink");
OSSAsyncTask task = oss.asyncGetSymlink(getSymlink, new OSSCompletedCallback<GetSymlinkRequest,
GetSymlinkResult>() {
@Override
public void onSuccess(GetSymlinkRequest request, GetSymlinkResult result) {
OSSLog.logInfo("targ::"+result.getTargetObjectName());
}
@Override
public void onFailure(GetSymlinkRequest request, ClientException clientException,
ServiceException serviceException) {
OSSLog.logError("error: "+serviceException.getRawMessage());
}
});
task.waitUntilFinished();
Références
Pour consulter l'exemple de code complet de gestion des liens symboliques, rendez-vous sur GitHub.
Pour plus d'informations sur l'opération API de création d'un lien symbolique, consultez la section PutSymlink.
Pour plus d'informations sur l'opération API d'interrogation d'un lien symbolique, consultez la section GetSymlink.
Pour plus d'informations sur l'initialisation d'une instance OSSClient, consultez la section Initialisation.