软链接(Symlink)类似于快捷方式,可以快速访问常用的文件。本文介绍如何使用 OSS C++ SDK V2 创建和获取软链接。
注意事项
-
运行示例代码前,请将代码中的
<region>替换为实际的地域,如cn-hangzhou。 -
本文示例代码使用环境变量获取访问凭证。
-
创建软链接需要拥有
oss:PutObject权限。 -
获取软链接需要拥有
oss:GetObject权限。
示例代码
创建软链接
以下代码演示如何为指定文件创建软链接:
#include <iostream>
#include "alibabacloud/oss2/ClientConfiguration.h"
#include "alibabacloud/oss2/OSSClient.h"
#include "alibabacloud/oss2/credentials/CredentialsProvider.h"
namespace oss = alibabacloud::oss2;
int main() {
auto conf = oss::ClientConfiguration::loadDefault();
conf.region = "<region>";
conf.credentialsProvider = std::make_shared<oss::EnvironmentVariableCredentialsProvider>();
oss::OSSClient client(conf);
auto outcome = client.putSymlink(
oss::models::PutSymlinkRequest()
.setBucket("examplebucket")
.setKey("example-symlink.txt")
.setSymlinkTarget("exampleobject.txt"));
if (!outcome.has_value()) {
auto& e = outcome.error();
std::cerr << "创建软链接失败"
<< ", code: " << e.getCode()
<< ", message: " << e.getMessage()
<< ", requestId: " << e.getRequestId() << std::endl;
return 1;
}
auto& result = outcome.value();
std::cout << "创建软链接成功"
<< ", status: " << result.getStatusCode()
<< ", requestId: " << result.getRequestId() << std::endl;
return 0;
}
获取软链接
以下代码演示如何获取软链接指向的目标文件:
#include <iostream>
#include "alibabacloud/oss2/ClientConfiguration.h"
#include "alibabacloud/oss2/OSSClient.h"
#include "alibabacloud/oss2/credentials/CredentialsProvider.h"
namespace oss = alibabacloud::oss2;
int main() {
auto conf = oss::ClientConfiguration::loadDefault();
conf.region = "<region>";
conf.credentialsProvider = std::make_shared<oss::EnvironmentVariableCredentialsProvider>();
oss::OSSClient client(conf);
auto outcome = client.getSymlink(
oss::models::GetSymlinkRequest()
.setBucket("examplebucket")
.setKey("example-symlink.txt"));
if (!outcome.has_value()) {
auto& e = outcome.error();
std::cerr << "获取软链接失败"
<< ", code: " << e.getCode()
<< ", message: " << e.getMessage()
<< ", requestId: " << e.getRequestId() << std::endl;
return 1;
}
auto& result = outcome.value();
std::cout << "获取软链接成功"
<< ", 目标文件: " << result.getSymlinkTarget() << std::endl;
return 0;
}
相关文档
关于创建软链接的完整示例代码,请参见PutSymlink.cpp。
关于获取软链接的完整示例代码,请参见GetSymlink.cpp。
该文章对您有帮助吗?