以下为获取照片列表的完整代码,以展示SDK的使用方式。为了更好理解示例代码,请首先阅读
同步数据一文。
import java.util.ArrayList;
import java.util.List;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.cloudphoto.model.v20170711.ListPhotosRequest;
import com.aliyuncs.cloudphoto.model.v20170711.ListPhotosResponse;
import com.aliyuncs.cloudphoto.model.v20170711.ListPhotosResponse.Photo;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.sts.model.v20150401.AssumeRoleResponse.Credentials;
public class ListPhotosDemo {
public static void main(String[] args) throws ClientException {
// 从您的业务服务器处获取到临时访问凭证和其他访问云相册的信息
Credentials credentials = getCredentialFromServer();
String storeName = "<your_photo_store_name>";
String cloudPhotoRegion = "cn-shanghai";
// Step1: 创建DefaultAcsClient对象
DefaultProfile profile = DefaultProfile.getProfile(cloudPhotoRegion, credentials.getAccessKeyId(),
credentials.getAccessKeySecret(), credentials.getSecurityToken());
DefaultAcsClient acsClient = new DefaultAcsClient(profile);
// Step2: 从老数据开始分批获取照片数据
String cursor = "0";
List<Long> photoIds = new ArrayList<Long>();
while (!"EOF".equalsIgnoreCase(cursor)) {
ListPhotosRequest request = new ListPhotosRequest();
request.setStoreName(storeName);
request.setCursor(cursor);
request.setDirection("forward");
// 只获取正常状态的照片,每批10条数据。
request.setState("active");
request.setSize(10);
// Step3: 发送请求并接收响应,如果没有抛异常则表示请求成功
ListPhotosResponse response = acsClient.getAcsResponse(request);
List<Photo> photos = response.getPhotos();
for (ListPhotosResponse.Photo photo : photos) {
photoIds.add(photo.getId());
}
// 服务端返回获取下一批数据的游标,调整游标开始获取下一批数据。
cursor = response.getNextCursor();
}
System.out.println("Total PhotoId count = " + photoIds.size());
}
}
如上述示例代码所示,使用SDK可以快速接入智能云相册。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。