JetS3t无法为Java8中现有的S3对象获取LastModifiedDate,但在Java 7中成功。
package JsTest
import org.jets3t.service.S3Service;
import org.jets3t.service.ServiceException;
import org.jets3t.service.impl.rest.httpclient.RestS3Service;
import org.jets3t.service.model.S3Object;
import org.jets3t.service.security.AWSCredentials;
public class Jetsettester {
public static void main(String[] args) {
String awsAccessKey = "<access_key>";
String awsSecretKey = "<secret>";
AWSCredentials awsCredentials = new AWSCredentials(awsAccessKey, awsSecretKey);
S3Service s3Service = new RestS3Service(awsCredentials);
try {
S3Object objectDetailsOnly = (S3Object) s3Service.getObjectDetails("ENTER_BUCKET_NAME", "EXISTING_SAMPLE_KEY.TXT");
Object md = objectDetailsOnly.getMetadata("Last-Modified"); // Object type is 'String' in Java 8 - and 'Date' in Java 7
Date dt = objectDetailsOnly.getLastModifiedDate(); // Hence, raises ClassCastException only in Java 8 . In Java 7 - it is correct Date class
} catch (ServiceException e) {
e.printStackTrace();
}
}
}我认为有两个标题值-一个用于‘最后修改’和另一个为小写‘最后修改’,但我不知道更多。有人能帮忙吗?
发布于 2016-02-02 04:57:21
这是JetS3t 0.9.3中的一个bug。我提出了这个bug,James去年在发布0.9.4时亲切地修复了它,在这里发布它,以防其他人体验它。细节用于jets3t的bitbucket错误链接
https://stackoverflow.com/questions/30270061
复制相似问题