Sou*_*abh 26 amazon-s3 amazon-web-services
如何在亚马逊s3上添加字符串作为文件?从我搜索的whaterver,我知道我们可以上传文件到s3.在不创建文件的情况下上传数据的最佳方法是什么?
Pau*_*lor 11
看起来不是很好,但是你可以使用Amazons Java客户端来完成它,可能是JetS3t在幕后做的事情.
private boolean putArtistPage(AmazonS3 s3,String bucketName, String key, String webpage)
{
try
{
byte[] contentAsBytes = webpage.getBytes("UTF-8");
ByteArrayInputStream contentsAsStream = new ByteArrayInputStream(contentAsBytes);
ObjectMetadata md = new ObjectMetadata();
md.setContentLength(contentAsBytes.length);
s3.putObject(new PutObjectRequest(bucketname, key, contentsAsStream, md));
return true;
}
catch(AmazonServiceException e)
{
log.log(Level.SEVERE, e.getMessage(), e);
return false;
}
catch(Exception ex)
{
log.log(Level.SEVERE, ex.getMessage(), ex);
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
Rex*_*NFX 11
AmazonS3.putObject方法存在重载,该方法接受存储桶字符串,键字符串和一串文本内容.在堆栈溢出时我没有看到它的提及所以我把它放在这里.这将是类似@ Jonik的答案,但没有额外的依赖性.
AmazonS3 s3client = AmazonS3ClientBuilder.standard().withRegion(Regions.US_EAST_1).build();
s3client.putObject(bucket, key, contents);
Run Code Online (Sandbox Code Playgroud)
在不创建文件的情况下上传数据的最佳方法是什么?
如果您的意思是不在S3上创建文件,那么您实际上就不能这样做。在Amazon S3上,存储数据的唯一方法是作为文件或使用更准确的术语object。对象可以包含1字节零字节到5 TB数据,并存储在bucket中。亚马逊的S3主页非常清楚地列出了基本事实。(对于AWS上的其他数据存储选项,您可能需要阅读例如有关SimpleDB的信息。)
如果您的意思是不创建本地临时文件,那么答案取决于您所使用的库/工具。(如RickMeasham所建议,请添加更多详细信息!)例如,使用s3cmd工具,您不能跳过创建临时文件,而使用JetS3t Java库直接上传String则很容易:
// (First init s3Service and testBucket)
S3Object stringObject = new S3Object("HelloWorld.txt", "Hello World!");
s3Service.putObject(testBucket, stringObject);
Run Code Online (Sandbox Code Playgroud)
有一种使用PHP的简单方法,只需将字符串作为对象的主体发送,并在键中指定新文件的名称-
$s3->putObject(array(
'Bucket' => [Bucket name],
'Key' => [path/to/file.ext],
'Body' => [Your string goes here],
'ContentType' => [specify mimetype if you want],
));
Run Code Online (Sandbox Code Playgroud)
这将根据指定的键创建一个新文件,该文件具有字符串中指定的内容。
| 归档时间: |
|
| 查看次数: |
37081 次 |
| 最近记录: |