Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# S3通过Amazon.S3 nuget包通过Scaleway_C#_Amazon S3_.net Core - Fatal编程技术网

C# S3通过Amazon.S3 nuget包通过Scaleway

C# S3通过Amazon.S3 nuget包通过Scaleway,c#,amazon-s3,.net-core,C#,Amazon S3,.net Core,我想使用Amazon.S3 nuget包来使用Scaleway对象存储(S3标准)() 但我得到了这个错误:“‘授权标头格式不正确;区域‘us-east-1’错误;应为‘fr par’” 我需要改变我的区域,但如何改变? 谢谢 这里是Scaleway的存储团队成员 感谢您使用我们的服务 不幸的是,C#中的AWS s3 SDK不允许您自定义请求区域和端点,只能自定义一个 目前,我们建议您暂时使用MinIO SDK(请参见此处:) 然而, 我们意识到这一情况,并正在寻求解决办法 例子 首先安装sdk

我想使用Amazon.S3 nuget包来使用Scaleway对象存储(S3标准)()

但我得到了这个错误:“‘授权标头格式不正确;区域‘us-east-1’错误;应为‘fr par’”

我需要改变我的区域,但如何改变? 谢谢


这里是Scaleway的存储团队成员

感谢您使用我们的服务

不幸的是,C#中的AWS s3 SDK不允许您自定义请求区域和端点,只能自定义一个

目前,我们建议您暂时使用MinIO SDK(请参见此处:)

然而,

我们意识到这一情况,并正在寻求解决办法

例子 首先安装sdk

dotnet添加包Minio——3.1.4版
然后是代码

使用系统;
使用System.IO;
使用Minio;
使用最小例外;
使用Minio.DataModel;
使用System.Threading.Tasks;
命名空间文件上载程序
{
类文件上载
{
静态void Main(字符串[]参数)
{
尝试
{
var minio=新的MinioClient(
“s3.fr部分scw.cloud”,
“SCWXXXXXXXXXX”,
“xxxxx-xxxx-xxxx-xxxxx-xxxxx”,
“fr par”
).WithSSL();
字符串[]fileEntries=Directory.GetFiles(“/app”);
foreach(文件项中的字符串文件名){
FileUpload.Run(minio,fileName.Wait();
}
}
捕获(例外情况除外)
{
控制台写入线(例如消息);
}
}
//文件上传任务。
专用异步静态任务运行(MinioClient minio,字符串文件)
{
尝试
{
等待minio.PutObjectAsync(“我的bucket”,Path.GetFileName(文件),file,”;
Console.WriteLine(“成功上传”+文件);
}
捕获(最小例外e)
{
WriteLine(“文件上载错误:{0}”,e.Message);
}
}
}
}

感谢您的解决方案。有些东西还在开发中?谢谢Hello@Glimm sdk是由AWS开发的,不是由Scaleway开发的是的,但Scaleway是否计划开发自己的sdk?:)我不再为斯威威工作了,但我不这么认为。。。愿景是符合S3协议。我认为应该对SDK进行修补,以接受其他S3服务。(就像在python中一样,go,…)ps:SDK中最近有一个关于这方面的问题,我来看看。多谢各位。
    public static async Task UploadFile(FileStream file, string bucket = "default")
    {
         var config = new AmazonS3Config { ServiceURL = endPoint };
        using (var client = new AmazonS3Client(keyId, secretAccessKey, config))
        {

            using (var newMemoryStream = new MemoryStream())
            {
                var uploadRequest = new TransferUtilityUploadRequest
                {
                    InputStream = file, 
                    Key = file.Name,
                    BucketName = bucket,
                    CannedACL = S3CannedACL.PublicRead
                };

                var fileTransferUtility = new TransferUtility(client);
                await fileTransferUtility.UploadAsync(uploadRequest);
            }
        }
    }