我有以下代码,非常适合简单的文件上传。但是,假设我想要附加到现有文件或只是上传随机字节块,比如第一个和最后10个字节?甚至可以使用官方SDK吗?
PutObjectRequest request = new PutObjectRequest();
FileStream fs = new FileStream(@"C:\myFolder\MyFile.bin", FileMode.Open);
request.WithInputStream(fs);
request.WithBucketName(bucketName);
request.WithKey(keyName);
client.PutObject(request);
fs.Close();
答案 0 :(得分:4)
无法在S3中将数据附加到现有对象。你必须覆盖整个文件。
虽然说,有可能获得Amazon's large file支持的程度。随着这个上传被分成几个块并在S3上重新组装。但是你必须将它作为单个传输的一部分来实现,而且只能用于大型文件。
答案 1 :(得分:4)
以前的答案似乎不再是这种情况。您现在可以使用现有对象作为多部分上载的初始部分来管理类似进程的追加。完成传输后删除上一个对象。
请参阅:
http://docs.aws.amazon.com/AmazonS3/latest/dev/CopyingObjctsUsingLLNetMPUapi.html
http://docs.aws.amazon.com/AmazonS3/latest/API/mpUploadUploadPartCopy.html