c# - 使用 C# 在 AWS S3 存储桶中保存屏幕截图
问题描述
我正在开发 Windows 应用程序,它会自动截取屏幕截图并保存在 AWS S3 存储桶中。我能够截取屏幕截图并保存在我的本地系统中,但努力将图像保存到 S3 存储桶。
这是我的代码
double screenLeft = SystemParameters.VirtualScreenLeft;
double screenTop = SystemParameters.VirtualScreenTop;
double screenWidth = SystemParameters.VirtualScreenWidth;
double screenHeight = SystemParameters.VirtualScreenHeight;
string bucketName = "bucketname";
string awsAccessKey = "AccessKey";
string awsSecretKey = "SecretKey";
string folderPath = "Screenshot/";
string date = today.ToString("yyyy-MM-dd");
string folderexistcheck = folderPath + Sessions.EmpId + "/" + date + "/";
IAmazonS3 client = new AmazonS3Client(awsAccessKey, awsSecretKey, RegionEndpoint.USWest2);
using (Bitmap bmp = new Bitmap((int)screenWidth, (int)screenHeight))
{
using (Graphics g = Graphics.FromImage(bmp))
{
String filename = "ScreenCapture-" + DateTime.Now.ToString("ddMMyyyy-hhmmss") + ".png";
Opacity = .0;
g.CopyFromScreen((int)screenLeft, (int)screenTop, 0, 0, bmp.Size);
MemoryStream m = new MemoryStream();
/* Saving screenshot in local system */
bmp.Save("C:\\screenshot\\" + filename);
new MemoryStream(m.GetBuffer());
Opacity = 1;
/* this is what i tryed to save screenshot in S3 bucket */
FileInfo file = new FileInfo(bmp);
string path = folderexistcheck;
PutObjectRequest request = new PutObjectRequest()
{
InputStream = file.OpenRead(),
BucketName = bucketName,
Key = path // <-- in S3 key represents a path
};
PutObjectResponse response = client.PutObject(request);
}
}
解决方案
推荐阅读
- cefsharp - 非空域名中断页面
- python - 计算一对值在 Dartaframe 中出现的次数
- regex - 如何使用 .htaccess 重定向带有随机搜索查询的 URL?
- javascript - 可以在 jsPDF-Autotable 单元格中使用多种字体样式吗?
- bash - 添加 bash 使其被 /usr/bin/env 识别
- javascript - Google Cloud Firestore 仅查询时间戳早于 x 的文档
- excel - 将一列中的字符串匹配到另一列中的部分字符串
- visual-c++ - 函数触发不正确
- bash - 如何比较两个脚本的内容
- javascript - JavaScript:如何获得没有时区的简单日期