@@ -1176,6 +1176,54 @@ public COSObject getCOSObjectStream() {
11761176 return cosObject .getObjectMetadata ();
11771177 }
11781178
1179+ @ Override
1180+ public PutSymlinkResult putSymlink (PutSymlinkRequest putSymlinkRequest ) {
1181+ rejectNull (putSymlinkRequest , "The request must not be null." );
1182+ rejectNull (putSymlinkRequest .getBucketName (),
1183+ "The bucket name parameter must be specified when create symlink." );
1184+ rejectNull (putSymlinkRequest .getSymlink (), "The symlink name must be specified when create symlink" );
1185+ rejectNull (putSymlinkRequest .getTarget (), "The target object must be specified when create symlink" );
1186+
1187+ CosHttpRequest <CosServiceRequest > request = createRequest (putSymlinkRequest .getBucketName (),
1188+ putSymlinkRequest .getSymlink (), putSymlinkRequest , HttpMethodName .PUT );
1189+ request .addParameter ("symlink" , null );
1190+ addParameterIfNotNull (request ,"versionId" , putSymlinkRequest .getVersionId ());
1191+
1192+ request .addHeader (Headers .SYMLINK_TARGET , putSymlinkRequest .getTarget ());
1193+
1194+ // Set acl
1195+ // canned acl
1196+ addHeaderIfNotNull (request , Headers .COS_CANNED_ACL ,
1197+ putSymlinkRequest .getCannedAccessControlList () != null ?
1198+ putSymlinkRequest .getCannedAccessControlList ().toString () : null );
1199+
1200+ // custom acl
1201+ if (putSymlinkRequest .getAccessControlList () != null ) {
1202+ byte [] aclAsXml = new AclXmlFactory ().convertToXmlByteArray (putSymlinkRequest .getAccessControlList ());
1203+ request .addHeader (Headers .CONTENT_TYPE , "application/xml" );
1204+ request .addHeader (Headers .CONTENT_LENGTH , String .valueOf (aclAsXml .length ));
1205+ request .setContent (new ByteArrayInputStream (aclAsXml ));
1206+ }
1207+
1208+ return invoke (request , new PutSymlinkResultHandler ());
1209+ }
1210+
1211+ @ Override
1212+ public GetSymlinkResult getSymlink (GetSymlinkRequest getSymlinkRequest ) {
1213+ rejectNull (getSymlinkRequest , "The request must not be null." );
1214+ rejectNull (getSymlinkRequest .getBucketName (),
1215+ "The bucket name parameter must be specified when getting symlink." );
1216+ rejectNull (getSymlinkRequest .getSymlink (), "The requested symbolic link must be specified." );
1217+
1218+ CosHttpRequest <CosServiceRequest > request = createRequest (getSymlinkRequest .getBucketName (),
1219+ getSymlinkRequest .getSymlink (), getSymlinkRequest , HttpMethodName .GET );
1220+ request .addParameter ("symlink" , null );
1221+ addParameterIfNotNull (request ,"versionId" , getSymlinkRequest .getVersionId ());
1222+
1223+ return invoke (request , new GetSymlinkResultHandler ());
1224+ }
1225+
1226+
11791227 @ Override
11801228 public boolean doesObjectExist (String bucketName , String objectName )
11811229 throws CosClientException , CosServiceException {
@@ -1687,8 +1735,6 @@ public void abortMultipartUpload(AbortMultipartUploadRequest abortMultipartUploa
16871735
16881736 }
16891737
1690-
1691-
16921738 @ Override
16931739 public CompleteMultipartUploadResult completeMultipartUpload (
16941740 CompleteMultipartUploadRequest completeMultipartUploadRequest )
0 commit comments